如何在 .csh 脚本中进行三元运算

how to do a ternary operation in .csh script

我想做

a = $b == howru ? good : not_good;

在 c shell 脚本中

我尝试使用 &&|| 运算符,但似乎我犯了一些错误,因为我习惯于在 Bash.

上工作

首先,你的语法错误:

  1. 您需要使用 set
  2. 分配变量
  3. ? .. : 不是 csh 中的运算符。

"normal" csh if 语句如下所示:

if ( cond ) then
  foo
else
  bar
endif

您实际上可以将 if 缩短为

if ( cond ) foo

但据我所知,您不能在此处添加 else

"short" 语法与 bourne shell 中的语法完全相同,只是您需要使用 set 关键字:

% [ "howru" = 'howru' ] && set a = good || set a = not_good
% echo $a
good

% [ "XXhowru" = 'howru' ] && set a = good || set a = not_good
% echo $a
not_good