如何在.csh脚本中执行三元操作

时间:2015-03-02 12:09:50

标签: csh

我想做

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

在c shell脚本中

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

1 个答案:

答案 0 :(得分:3)

首先,您的语法错误:

  1. 您需要使用set
  2. 分配变量
  3. ? .. :不是csh中的运算符。
  4. "正常" csh if语句如下:

    if ( cond ) then
      foo
    else
      bar
    endif
    

    您实际上可以将if缩短为

    if ( cond ) foo
    

    但据我所知,你不能在这里添加else

    A"短"语法与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