0

我正在编写一个 bash 脚本,它将 .tgz 文件输出到特定目录,默认情况下是 /tmp/ 我想提供一个选项来覆盖这个目录,我选择使用命令行提供的参数来这样做

    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

任何投入将不胜感激。

4

1 回答 1

0

添加行

output="${output//\/\///}"

加入后dirname

它看起来很复杂,但它的作用是将两个斜线替换为一个。

您可以在这里找到更多信息。

于 2012-08-28T05:33:47.250 回答