我正在用这一行阅读Bash脚本:
FOO=${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(空字符串)。