これは、引数の数とファイル/ディレクトリの存在を確認するCシェルスクリプトです。パラメータが有効な場合は、最後のelse文に移動して「hi」を印刷する必要がありますが、正しいパラメータを使用してこのスクリプトを実行すると、何も印刷されません。 (ただし、終了ステータスは 0 です。)
無効なパラメータがあると、他のすべてが正常に動作します。
if ($#argv != 2) then
echo "Two arguments required"
else
if (! -f $argv[1]) then
echo "File does not exist"
exit 1
else
if (! -d $argv[2]) then
echo "Not a valid directory"
exit 2
endif
endif
else
echo "hi"
endif
たぶん私の構文が間違っているかもしれませんか?どんなアイデアがありますか?
答え1
else
else
すでにこのケースがあるため、このケースに連絡することはできませんif
。達成したいことは、次のことで行うことができます。
if ($#argv != 2) then
echo "Two arguments required"
exit 1
else if (! -f $argv[1]) then
echo "File does not exist"
exit 1
else if (! -d $argv[2]) then
echo "Not a valid directory"
exit 2
endif
echo "hi"