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

问题描述 投票:1回答:1

我正在尝试使用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 syntax csh
1个回答
1
投票

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

所以以下应该适合你:

if ( { ( mount | grep -q "on $MOUNT_FOLDER" ) } ) then
...
© www.soinside.com 2019 - 2024. All rights reserved.