Тест существования Файла Bash всегда верен

В Settings меню располагается и запускается Session and Startup (или запустите его с окна терминала с xfce4-session-settings команда). Затем перейдите в Applicaton Autostart вкладка и нажимает Add кнопка. В Add application диалоговое окно обеспечивает имя и команду, на которую Вам нравится выполняться, входят в систему. Нажать OK кнопка. Затем закройтесь Session and Startup приложение.

Приятного отдыха!

5
21.11.2014, 01:25
3 ответа

Когда ваша переменная пуста, ваша команда становится:

[ -e ]

В этом случае вы звоните [..] с одним аргументом -E . String «- E» не является NULL, поэтому тест вернуть true.

Это поведение определяется тестом POSIX :

в следующем списке, $ 1, 2, $ 3 и 47 $ представляют аргументы Представлено тестированием:

0 аргументов:

Выход FALSE (1).

1 Аргумент:

Выход True (0), если $ 1 не является нулевым; В противном случае выход false.

....

Чтобы сделать его работы, вы должны Двойной процитировать вашу переменную :

[ -e "$MYAPPPATH" ]

Это работает, потому что --e с аргументом, который является пустой строкой неверно

13
27.01.2020, 20:31

привыкнуть к цитированию переменных. Всегда цитируйте их; Это предотвращает непроницаемые нарушения, когда необходимо:

if [ -e "$MYAPPPATH" ]

Это не произошло бы с помощью COBEC-CONDECT, CONDUCE:

if [[ -e $MYAPPPATH ]]
5
27.01.2020, 20:31

Есть некоторые другие способы:

  1. проверяют перемезу до (С выпусками в соответствии с комментариями)

     если [-N «$ myAppPath»] && [-E «$ myAppPath»];  тогда ...
     
  2. Использование Найти * Вместо Найти

    , если найти --w «$ appdir / myApp *»;  тогда ...
     

* 1 Использование Найдите Не забудьте обновить базу данных файлов по телефону UpdatedB

2
27.01.2020, 20:31

Теги

Похожие вопросы