Я пытаюсь проверить, смонтирован ли том с помощью сценария 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?