0

この問題について同様の質問があります。しかし、同じ解決策ではありません。

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 はディレクトリにありません。

ヘルプやガイダンスをいただければ幸いです。ありがとうございました

4

1 に答える 1