ファイル拡張子の名前変更が機能しません。

ファイル拡張子の名前変更が機能しません。

私はシェルの文字列操作ツールを介してログファイルを生成するために次のコードを使用しています。ファイル名があり、エラーが発生した場合は、err.logを含むログファイルを生成する必要があります。

仮定は次$fileNameのとおりですtest.tmp

echo ' l_error_msg' >> $UPLOAD/output/$fileName.err

これにより、というファイルが生成されますtest.tmp.err

だから私は次のコードを使って生成してみましたtest.err

echo ' l_error_msg' >> $UPLOAD/output/${$fileName%.*}.err

しかし、これはうまくいきません。

ベストアンサー1

変数が与えられると、foo="bar.baz"正しい削除構文.bazは次のようになります${foo%.*}

$ foo="bar.baz"
$ echo ${foo%.*}
bar

重複した部分を削除する$と、期待どおりに機能します。

$ fileName="test.tmp"
$ echo ${fileName%.*}.err 
test.err

おすすめ記事