#bash #syntax #csh
#bash #синтаксис #csh
Вопрос:
Я пытаюсь проверить, смонтирован ли том с помощью скрипта csh.
Этот код работает
#!/bin/csh
set MOUNT_FOLDER = "/Volumes/AAA"
if ( `mount | grep -c "on $MOUNT_FOLDER"` == 0 ) then
echo Not mounted
else
echo Mounted
endif
но я хотел бы попробовать использовать синтаксис с { } и кодом выхода grep
. Я пробовал с
if ( { mount | grep -q "on $MOUNT_FOLDER" } ) then
...
но он выводит mount
выходные данные, и это независимо от значения $MOUNT_FOLDER
выражения всегда true
.
Комментарии:
1.
csh
илиbash
?2. Меня интересует csh. У меня есть рабочая версия использования bash.
Ответ №1:
В отличие от bash
, если вы передали команды в csh
и хотите получить статус завершения команды, вам необходимо инкапсулировать во вложенную оболочку ( ... | ... )
Итак, следующее должно сработать для вас:
if ( { ( mount | grep -q "on $MOUNT_FOLDER" ) } ) then
...
Комментарии:
1. Синтаксис в порядке. Единственное, что мне нужно изменить, это поместить ! в начале
if ( ! { ( mount | grep -q "on $MOUNT_FOLDER" ) } ) then
. Спасибо