sh (не bash) не распознает одинарные [ или двойные скобки [[?

Вы можете попробовать использовать lftp, установив сначала

ftp:home /particulardirectory

в файле конфигурации LFTP ~/.lftprc.

Из справочной страницы:

ftp:home (string)
              Initial directory. Default is empty string which means auto. Set this to  `/'  if  you
              don't  like  the  look  of  %2F  in  FTP URLs. The closure for this setting has format
              user@host.
0
24.02.2020, 22:33
2 ответа

Я думаю, это потому, что sh не может обрабатывать сравнение ==, так что это должно быть:

if [ "$skip_postinstall" = "yes" ]; then  
    echo "skipping postinstall routine.";
    exit 0;
fi

не это

if [ "$skip_postinstall" == "yes" ]; then  
    echo "skipping postinstall routine.";
    exit 0;
fi

крики

1
28.04.2021, 23:22

[[является «расширенным тестом», происходящим от ksh и также поддерживаемым bash/zsh, поэтому он не должен распознавать их. Кроме того, оператор ==не соответствует стандарту POSIX, =— это оператор проверки оболочки для сравнения строк.

Это два очень распространенных башизма .

3
28.04.2021, 23:22

Теги

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