我正在尝试使用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
不同,如果您在csh
中有管道命令并且想要获取命令退出状态您需要封装在子shell中( ... | ... )
所以以下应该适合你:
if ( { ( mount | grep -q "on $MOUNT_FOLDER" ) } ) then
...