小さなkornスクリプトを書きましたが、スクリプトを実行しようとすると、表示したいメッセージがエコーされません。Korn条件演算子が動作しない
ksh script.sh -1
メッセージをエコーしていません。バッシュ/ kshの$#
で
if [ $# -le 0 ]
then
echo "That is a negative integer!"
exit
fi
小さなkornスクリプトを書きましたが、スクリプトを実行しようとすると、表示したいメッセージがエコーされません。Korn条件演算子が動作しない
ksh script.sh -1
メッセージをエコーしていません。バッシュ/ kshの$#
で
if [ $# -le 0 ]
then
echo "That is a negative integer!"
exit
fi
パラメータとして渡された引数の数を表します。 何が必要なことは
if [ ${1:-0} -lt 0 ] # $1 is the first parameter
then
echo "That is a negative integer!"
exit
fi
または上記
[ ${1:-0} -lt 0 ] && echo "That is a negative integer!" && exit
の短絡版で編集1
${1:-0}
を使用しているデフォルト値を提供します。ゼロ以来[ ${1:-NULL} = "StringToMatch" ] && DoSomething
の下に行う-lt
編集2
で-le
を交換、技術的には負の数ではありません
出力にちょうど少なくとも1つの非数字の文字があるかどうかを調べるには、次のようなものを入力してください。
[[ {1:-NULL} =~ [^[:digit:]]+ ]] && DoSomething
警告:リンクに記載されたすべての拡張がksh
ありがとう、あなたの答えを選択します、魅力のように動作します! – user3807468
@ user3807468:私は編集しました。見てください:) – sjsam
すぐに質問します。入力が文字列かどうかを今検出しようとしています。どうすればいい?私はそれを見ようとしており、それについて何も見つけることができません。私はこれを書こうとしましたが、何かを入力するとそれは拒否されます。 'コード' [$ 1!=^[0-9]] – user3807468
によってサポートされていない可能性はない、それはbashやkshのですか?それらは2つの異なる言語です! –
おっと、私はコーンシェルを意味しました。私は今それを編集します。 – user3807468
引数の数はどのように負になりますか? – karakfa