Применяются стандартные предупреждения относительно использования tcsh
/csh
(не используйте его для сценариев из-за его внутренние ограничения), но вот перевод:
if ( "$1" == "" ) then # parentheses not strictly needed in this simple case
echo "variable is empty"
else
echo "variable contains $1"
endif
Однако обратите внимание, что если бы вы использовали произвольное имя переменной, а не $1
в приведенном выше примере, оператор сломался бы, если бы эта переменная еще не была определена (тогда как $1
всегда определено< /strong>, даже если он не установлен).
Чтобы спланировать случай, когда переменная, скажем, $var
, может быть не определена, нужно сделать следующее:
if (! $?var) then
echo "variable is undefined"
else
if ("$var" == "") then
echo "variable is empty"
else
echo "variable contains $var"
endif
endif
Вложенные if
необходимы, чтобы избежать нарушения сценария, поскольку tcsh
, по-видимому, не вызывает короткого замыкания (условие ветки else if
будет оцениваться, даже если будет введена ветка if
; аналогичным образом обе стороны &&
и ||
выражения, по-видимому, всегда оцениваются — это относится, по крайней мере, к использованию неопределенных переменных).
person
mklement0
schedule
25.03.2014
tcsh
? - person chepner   schedule 25.03.2014if ("x$1" == "x")
. - person n. 1.8e9-where's-my-share m.   schedule 25.03.2014