在Bash中,`$ {1 + / $ 1}`是什么意思?

时间:2019-10-02 12:18:25

标签: linux bash

我正在用这一行阅读Bash脚本:

FOO=${1+/$1}

这行是做什么的?

1 个答案:

答案 0 :(得分:5)

/使其看起来比原来稍微混乱,但这只是${foo+bar}的示例,如果设置了bar,它会扩展为$foo。 / p>

在这种情况下,变量为$1,这是传递给脚本或函数的第一个位置参数。

example () {
  echo "${1+/$1}"
}

example     # outputs nothing
example ''  # outputs "/"
example foo # outputs "/foo"

规范中有一张表格总结了这些parameter expansions${parameter+word}的规则是:

  • 设置且不为空:替换word
  • 设置为空:替换word
  • 未设置:替换为空

因此,为了直接回答您的问题,FOO=${1+/$1}/$1分配给FOO,并且$1设置为null(空字符串)。