Я пытаюсь проверить, смонтирован ли том с помощью сценария 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
.
Меня интересует ЧШ. У меня есть рабочая версия с использованием bash.
В отличие от bash
, если у вас есть конвейерные команды в csh
и вы хотите получить статус выхода команды, вам необходимо инкапсулировать в подоболочку ( ... | ... )
Итак, для вас должно работать следующее:
if ( { ( mount | grep -q "on $MOUNT_FOLDER" ) } ) then
...
Синтаксис в порядке. Единственное, что я должен изменить, это поставить! в начале if ( ! { ( mount | grep -q "on $MOUNT_FOLDER" ) } ) then
. Спасибо
csh
илиbash
?