2

tcshスクリプトへの数値入力引数を検証するにはどうすればよいですか?

#!/usr/bin/tcsh

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

上記のスニペットは、私がやろうとしていることを示していますが、機能しません。exprコマンドまたは@演算子を使用して、多くの組み合わせを試しましたが、役に立ちませんでした。マニュアルページとWebはまだ何も表示されていません。何を試しても、「不正な数値」や「セット:変数名は文字で始まる必要があります」などのエラーが発生し続けます。

これを行うためのtcsh風の方法はありますか?私は確かにawkやwateverを使って何かをハックすることができましたが、それはちょっとばかげているようです。

4

1 に答える 1

2

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
于 2011-03-04T16:15:50.050 に答える