URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6246
[ Назад ]

Исходное сообщение
"Как сделать чтобы shell не проверял переменную ввиде директории на сущ"

Отправлено Stan777 , 09-Мрт-07 13:15 
Как сделать чтобы shell не проверял переменную ввиде директории на существование

$var =/usr/foo/foo/ # это директория другой машины

if $var; then
.....
else
......
fi

при запуске мне скрипт выводит что
./myscript: /usr/foo/foo/: not found
как от этого избавится ?


Содержание

Сообщения в этом обсуждении
"Как сделать чтобы shell не проверял переменную ввиде директо..."
Отправлено phpcoder , 09-Мрт-07 13:20 
>Как сделать чтобы shell не проверял переменную ввиде директории на существование

В вашем примере он её и не проверяет на существование, он думает, что это программа и пытается её запустить, насколько понимаю.

>при запуске мне скрипт выводит что
>./myscript: /usr/foo/foo/: not found
>как от этого избавится ?

Вам нужно просто проверить, что перменная не пуста? Тогда можно так:

if [ -z "$var" ]; then
...


"Как сделать чтобы shell не проверял переменную ввиде директо..."
Отправлено BigShadow , 10-Апр-07 14:11 
Вот так: var=/usr/foo/foo/

Из-за наличия $ у вас выполняется шеллом подстановка значения var.
Там ничего нет... в результате преобразования шелл получает строку /usr/foo/foo/
которую интерпретирует как вызов команды... он прав а вы нет :)))