как узнать, существует ли команда оболочки в cshell - PullRequest
3 голосов
/ 01 февраля 2011

Я ищу функцию, которая возвратила бы 1, если команда оболочки существует, и 0, в противном случае я знаю, что есть команда which, которая возвращает путь к команде, если она существует.В руководстве также сказано, что эта команда должна иметь возвращаемое значение, но попытка установить a = `which some_command.bin` не помещает никакого значения в a.Я знаю, что всегда могу использовать which, затем анализировать результаты, я просто ищу более чистое решение

1 Ответ

5 голосов
/ 01 февраля 2011

Возвращаемое значение для команды оболочки обычно не получается таким образом.Обычно вам нужно выполнить команду, тогда специальная переменная окружения $? выдаст вам возвращаемое значение.

См. Следующую расшифровку для tcsh:

pax$ which qq ; echo $?
qq: Command not found.
1

pax$ which ls ; echo $?
/bin/ls
0

Просто поместите все, что угоднокоманда, которую вы хотите проверить, где у меня ls выше.

...