Как проверить числовые входные аргументы в сценарии TCSH? - PullRequest
2 голосов
/ 04 марта 2011

Как проверить числовые аргументы ввода в сценарии tcsh?

#!/usr/bin/tcsh

if ( $1 < 0.0 ) then
    echo "ERROR: first input argument is less than zero."
    exit 1
endif

Приведенный выше фрагмент кода показывает, что я пытаюсь сделать, но не работает.Я пробовал МНОГИЕ комбинации, основанные на использовании команды expr или оператора @, но безрезультатно.Страница руководства и сеть пока ничего не нашли.Независимо от того, что я пытаюсь, я получаю ошибки типа «Плохо сформированное число» или «set: имя переменной должно начинаться с буквы».

Есть ли способ tcsh-ish сделать это?Я, конечно, могу что-то взломать, используя awk или что-то еще, но это выглядит глупо.

1 Ответ

2 голосов
/ 04 марта 2011

Tcsh не делает поплавки.Вы можете использовать bc или awk:

#!/usr/bin/tcsh
if ( `echo "$1 < 0.0" | bc` == 1 ) then
    echo "ERROR: first input argument is less than zero."
    exit 1
endif

или

#!/usr/bin/tcsh
if ( `awk -v "val=$1" 'BEGIN {print val < 0.0}'` == 1 ) then
    echo "ERROR: first input argument is less than zero."
    exit 1
endif
...