.tgz ファイルを特定のディレクトリ (デフォルトでは /tmp/) に出力する bash スクリプトを作成しています。このディレクトリをオーバーライドするオプションを提供したいと考えており、コマンド ラインで提供される引数を使用してオーバーライドすることを選択しました。
while getopts d: option
do
case "${option}" in
d) dir=${OPTARG};;
esac
done
書かれているように、これは機能しますが、ユーザー入力に応じて問題が発生しました.tgzファイルの名前も変数であり、これをすべてまとめるコードは次のとおりです.
output="$dir""$name"
私が遭遇する問題は、ユーザーが実行した場合です
./script -d /home/user
私の結果のパスとファイル名は次のようになります
/home/userfilename.tgz
末尾の / の要件を強制するか、ユーザーがそうしなかった場合は挿入する必要があります。それが機能している間、出力変数を
output="$dir"/"$name"
ユーザーが末尾を提供した場合 / 私はこのようなものになってしまい、出力の美学を維持しようとしています.
/home/user//filename.tgz
任意の入力をいただければ幸いです。