2017-02-11 2 views
-1

Я получаю эту ошибку:Мои, если оператор не работает с Bash

[[: command not found 

Вот мой код:

#!/usr/bin/env bash 

IS_PYSTACHE_INSTALLED=$(pip list --format=columns | grep "pystache ") 
if [[ ! -z "${IS_PYSTACHE_INSTALLED}" ]]; then 
    echo " > Installing pystache" 
    pip install pystache 
else 
    echo " > Pystache is already installed" 
fi 

Что я делаю неправильно?

+2

Вы уверены, что ваша оболочка действительно Bash? Наверное, это что-то еще, например, Дэш. – janos

+0

Если у вас нет shebang, и вы выполняете его как скрипт (например, с './Script', а не' bash script'), скрипт выполняется с '/ bin/sh', что не support '[['. – chepner

+0

У меня есть shebang. Я просто не копировал весь код. Не было никакой причины. Остальное работает. – jnbdz

ответ

1

, если вы не уверены в своей оболочки по умолчанию, перейдите к терминалу и сделать echo $SHELL, если вы видите #/bin/bash затем chmod скрипт и запустить его, как этот ./filename.sh, но убедитесь, что ваш hashbang линия #!/usr/bin/env bash. Если вы хотите изменить свою оболочку по умолчанию на bash, используйте команду chsh

+0

Когда я 'эхо $ SHELL', я получаю/bin/bash. Снова большая часть скрипта выполняется нормально. Это просто эта часть, которая вызывает ошибку. – jnbdz

Смежные вопросы