使用csh中的花括号的if命令的表达式语法

时间:2019-04-07 16:53:56

标签: bash syntax 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 个答案:

答案 0 :(得分:1)

bash不同的是,如果您在csh中有管道命令并且想要获取命令退出状态,则需要封装在子外壳( ... | ... )

因此,以下内容应该对您有用:

if ( { ( mount | grep -q "on $MOUNT_FOLDER" ) } ) then
...