この問題について同様の質問があります。しかし、同じ解決策ではありません。
2 つのパラメーターを取るシェル スクリプトを作成します: 1.目的のファイル拡張子 2.その拡張子で名前を変更する単一ファイルの名前
スクリプトは、目的のファイル拡張子でファイルの名前を変更する必要があります。ファイルが存在しない場合は、「fileName: No such file」と出力されます。このメッセージを生成していますが、教授のテストでは、予期しないメッセージ (余分なメッセージ) が生成されていると言われていますが、そうではありません。私のシェルスクリプトは次のとおりです。
#!/bin/sh
fileExtension="$1"
shift
oldName="${@}"
extension=${oldName##*.}
if test -r "$oldName"
then
if "$fileExtension" == $oldName.*
then
echo "$oldName"
else
newName="${oldName%.*}.$fileExtension"
mv "$oldName" "$newName"
fi
else
echo "$oldName": No such file
fi
テストするたびに、「fileName: no such file」が生成され、他には何も生成されません。
テストはによって実行されます
./chExt2.sh cpp aardvark.CPP
aardvark.CPP はディレクトリにありません。
ヘルプやガイダンスをいただければ幸いです。ありがとうございました