2017-02-16 6 views
0

私は変数が数値であるかどうかを以下のように確認しようとしています: プログラムを実行すると常にelseブロックになります。正規表現はIチェックされたオンラインテストツール変数をチェックする方法は、UNIXで数値であるかどうか

set reqex = '^[0-9]*$' 
    if( $parm =~ $reqex) then 
    echo "  ** NUMBER PASSED [$JOBPARM] **  " 
    else 
    echo "  ** NOT NUMBER PASSED [$JOBPARM] **  " 
    endif 
+1

どのスクリプト言語を使用していますか?あなたは 'csh'の構文と' bash'の構文を使っているようです。 – Barmar

答えて

0

使用しているシェルまたはスクリプト言語がわかりません。

あなたはkshのやbashのためのシェルスクリプトを開発しようとしている場合、これは動作するはずです:

reqex="^[0-9]+$" 
if [ $parm =~ $reqex ]; then 
    echo "  ** NUMBER PASSED [$JOBPARM] **  " 
else 
    echo "  ** NOT NUMBER PASSED [$JOBPARM] **  " 
fi 

私は正規表現に変更をも下車作りました。 *の代わりにゼロまたはそれ以上の数字を使用していますが、少なくとも1桁の数字の一致に+を使用しています。


+0

私は*を+に変更し、$ parmを123に設定しましたが、スローすると "not number passed"というメッセージが表示されます。私はKshellを使用しています。前もって感謝します。 – ryan

+0

どこから '*'を '+'に変更しましたか?あなたのスクリプトで? – anacron

関連する問題