引数のベース名を取得し、その引数に拡張子があるかどうかを確認するスクリプトを作成しようとしています。存在する場合は、拡張子を出力します。
これが私のコードです:
file=basename $1
ext=${file%*}
echo ${file#"$stub"}
echo $basename $1
basename の出力を確認するために、最後の $basename $1 をエコーします。
いくつかのテストで次のことがわかります。
testfile.sh one.two
./testfile: line 2: one.two: command not found
one.two
testfile.sh ../tester
./testfile: line 2: ../tester: No such file or directory
../tester
したがって、どちらの $basename $1 も機能していません。私はそれが構文エラーであることを知っているので、誰かが私が間違っていることを説明できますか?
編集:
私は今私の問題を解決しました:
file=$(basename "$1" )
stub=${file%.*}
echo ${file#"$stub"}
これにより、私の議論はベース名に還元されます。ありがとうございました。