String Bash脚本参数,需要或填写特定字符
我正在编写一个bash脚本,它将把一个.tgz文件输出到一个特定的目录,默认情况下为/tmp/ 我想提供一个选项来覆盖这个目录,我已经选择使用命令行中提供的参数来覆盖这个目录String Bash脚本参数,需要或填写特定字符,string,bash,String,Bash,我正在编写一个bash脚本,它将把一个.tgz文件输出到一个特定的目录,默认情况下为/tmp/ 我想提供一个选项来覆盖这个目录,我已经选择使用命令行中提供的参数来覆盖这个目录 while getopts d: option do case "${option}" in d) dir=${OPTARG};; esac done 如前所述,这是可行的,但我遇到了一个取决于用户输入的障碍 我的.tgz文件的名称也是一个变量,我的代码将这一切结合在一起
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"
如果用户确实提供了一个尾随/I,那么我最终会得到这样的结果,并且我正在努力保持我的输出美观
/home/user//filename.tgz
如果您有任何意见,我们将不胜感激。请添加该行
output="${output//\/\///}"
加入dir
和name
后
它看起来很复杂,但是它用一个斜杠代替了两个斜杠
您可以在中找到更多信息。如果您的文件名不是以多个斜杠开头,POSIX会将多个斜杠视为单个斜杠,因此在
$dir