скрипт bash рассматривает строку как команду - PullRequest
2 голосов
/ 09 декабря 2011

У меня проблема noobish с bash-скриптом. Он обрабатывает строку как команду.

Сценарий

 #!/bin/bash
 if ["$(pidof whatever)"]
 then
  echo "suicide"
 fi
 exit 0

Ошибка, которую я получаю при запуске: «[29999] команда не найдена».

Ты за помощь и время.

Ответы [ 4 ]

4 голосов
/ 09 декабря 2011

Вам нужен пробел между [ и $.[ - тестовая команда.

 #!/bin/bash
 if [ $(pidof whatever) ]
 then
  echo "suicide"
 fi
 exit 0
3 голосов
/ 09 декабря 2011

[ - это команда.Как и любая другая команда, bash ожидает, что за командой будет следовать пробел, затем первый аргумент, затем другой пробел и т. Д. Вот правильный путь:

if [ "$(pidof whatever)" ]; then ...
2 голосов
/ 09 декабря 2011

Похоже, проблема заключается в нехватке места между тестовыми операторами.Попробуйте:

 #!/bin/bash
 if [ "$(pidof whatever)" ]
 then
  echo "suicide"
 fi
 exit 0

Надеюсь, это поможет!

1 голос
/ 09 декабря 2011

Вам нужны пробелы между [и] например

if [ $(pidof whatever) ]

или

if [ "$(pidof whatever)" ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...