我需要遍历一堆不同的场景(变量场景),但无法弄清楚如何在tcsh shell脚本中使用if语句。获取错误“if:Expression Syntax”有人可以告诉我我的错误吗?简化代码如下!谢谢!
#!/bin/tcsh -f
#
set val = 0
foreach scen ( a b )
echo $scen
if ($scen==a) then
echo $scen
else
echo $val
endif
end
答案 0 :(得分:5)
显然你需要围绕平等比较==
的空格。这个
工作原理:
#!/bin/tcsh -f
#
set val = 0
foreach scen ( a b )
echo $scen
if ($scen == a) then
echo $scen
else
echo $val
endif
end
制造
a
a
b
0
另外,除非你必须在这里使用tcsh,否则我建议使用更好的 shell像bash或zsh。以下是针对csh和tcsh的一些论据:
为了比较,这是你在bash(和zsh)中的代码:
#!/bin/bash
# No space around equal sign in assignment!
val=0
for scen in a b; do
echo $scen
if [[ $scen == a ]]; then
echo $scen
else
echo $val
fi
done
这里没有重要区别,但请参阅上面的文章 csh将是一个糟糕选择的例子。