我需要检查第一个命令行参数,看它是否为-cleanup
。我的代码是:
if ( $* != null ) then
if ( "X$argv[$n]" == "X-cleanup" ) then
echo "its cleanup"
我首先检查以确保至少有一个参数。程序开头n
设置为1
。当我尝试以-cleanup
作为参数运行我的脚本时,我收到此错误:
if: Malformed file inquiry.
我尝试过在网上找到的几篇论坛帖子中的解决方案,但我无法弄清楚如何正确处理短划线。这是一个tcsh shell。
答案 0 :(得分:2)
此脚本代码段对我有用:
set n = 1
echo $argv[$n]
if ( "$argv[$n]" == "-cleanup" ) then
echo "its cleanup"
endif
当我运行tcsh ./test-cleanup.tcsh -cleanup
时会产生以下输出:
-cleanup
its cleanup
有问题的代码是以下行。当-cleanup
未加引号时,它会将csh解释器混淆为文件检查。
if ( $* != null ) then
将此替换为此行:
if ( "$*" != "" ) then