Bash脚本参数,需要或填写特定字符

时间:2012-08-28 05:28:04

标签: string bash

我正在编写一个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

非常感谢任何输入。

1 个答案:

答案 0 :(得分:0)

添加行

output="${output//\/\///}"
加入dirname

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

您可以在here找到更多信息。