Онлайн оператор if в tcsh/csh

Я работаю над tcsh и пытаюсь выполнить if then else endif оператор для проверки $? предыдущей команды. Но я получаю "if: Empty if."

dude >ps -p $$                                                                                                  PID TTY          TIME CMD
32 pts/82   00:00:00 tcsh
dude >if ( "$?" == "0" ) ; then echo "good" ; endif
if: Empty if.

то есть я хочу выполнить следующее:

>if ( "$?" == "0" ) then ; echo "good" ; else ; echo "bad" ; endif

person 0x90    schedule 26.05.2015    source источник


Ответы (1)


Вы пытаетесь использовать синтаксис bash для tcsh — он должен быть:

if ( "$?" == "0" ) then
   echo "good"
else
   echo "bad"
endif

Обратите внимание, что перед then нет ; (как в bash).

person Paul R    schedule 26.05.2015
comment
Как объединить оператор else? - person 0x90; 26.05.2015
comment
Да, я знаком с этим синтаксисом, как мне переписать его как один лайнер - person 0x90; 26.05.2015
comment
csh/tcsh не очень однострочный по сравнению с bash. См.: stackoverflow.com/questions/1544325/ - person Paul R; 26.05.2015