そのため、私は kornshell を初めて使用し、if ステートメントを機能させることができません。これは私のファイルにあるものです
if $1 = "Y"
then
echo "I am here";
fi
ファイルを実行すると、次のエラーが表示されます。
test.ksh[1]: Y: not found [No such file or directory]
私は何を間違っていますか?
そのため、私は kornshell を初めて使用し、if ステートメントを機能させることができません。これは私のファイルにあるものです
if $1 = "Y"
then
echo "I am here";
fi
ファイルを実行すると、次のエラーが表示されます。
test.ksh[1]: Y: not found [No such file or directory]
私は何を間違っていますか?
if
コマンドが続く必要があります。コマンドが正常に終了するかどうかをテストします。
test
コマンドまたは同等のコマンド[
、または ksh ビルトインを使用できます[[
。
if test "$1" = Y
また
if [ "$1" = Y ]
また
if [[ $1 == Y ]]
上記のコマンドは、引数で示された条件が true の場合に成功します。man test
有効な条件のリストを提供する必要があります。test
および[
コマンドの変数置換を引用符で囲むことを忘れないでください。そうでない場合、未定義の変数は何も置き換えられず (つまり、削除されます)、通常はエラーが報告されます。
厳密な Posix 互換性が必要ない場合は、ksh
組み込みの を使用してください。[[
これは にもありますbash
。引数を単語分割しないため、変数展開を引用符で囲む必要がないため、より便利です。[[
では、引用符で囲まれていない限り、比較の右側はパターン (「グロブ」) であることに注意してください==
。したがって、リテラルの等価性チェックが必要な場合は、右側に引用符が必要になる場合があります。