0

そのため、私は kornshell を初めて使用し、if ステートメントを機能させることができません。これは私のファイルにあるものです

if $1 = "Y"
then
    echo "I am here";
fi

ファイルを実行すると、次のエラーが表示されます。

test.ksh[1]: Y: not found [No such file or directory]

私は何を間違っていますか?

4

1 に答える 1

2

ifコマンドが続く必要があります。コマンドが正常に終了するかどうかをテストします。

testコマンドまたは同等のコマンド[、または ksh ビルトインを使用できます[[

if test "$1" = Y

また

if [ "$1" = Y ]

また

if [[ $1 == Y ]]

上記のコマンドは、引数で示された条件が true の場合に成功します。man test有効な条件のリストを提供する必要があります。testおよび[コマンドの変数置換を引用符で囲むことを忘れないでください。そうでない場合、未定義の変数は何も置き換えられず (つまり、削除されます)、通常はエラーが報告されます。

厳密な Posix 互換性が必要ない場合は、ksh組み込みの を使用してください。[[これは にもありますbash。引数を単語分割しないため、変数展開を引用符で囲む必要がないため、より便利です。[[では、引用符で囲まれていない限り、比較の右側はパターン (「グロブ」) であることに注意してください==。したがって、リテラルの等価性チェックが必要な場合は、右側に引用符が必要になる場合があります。

于 2013-10-01T16:37:10.323 に答える