@在bash脚本中的含义

时间:2017-05-15 09:08:46

标签: bash

@ 的含义在以下代码摘录mariadb docker image entrypoint

...
SOCKET="$(_get_config 'socket' "$@")"
"$@" --skip-networking --socket="${SOCKET}" &
pid="$!"

mysql=( mysql --protocol=socket -uroot -hlocalhost --socket="${SOCKET}" )

for i in {30..0}; do
    if echo 'SELECT 1' | "${mysql[@]}" &> /dev/null; then
        break
...

很乐意参考bash的良好手册/参考,因为在谷歌中搜索@bash中的含义无法产生良好的效果。

1 个答案:

答案 0 :(得分:3)

GNU man bash页面将是一个很好的起点

  

@

     

$@)从1开始扩展到位置参数。当扩展发生在双引号内时,每个参数都会扩展为单独的单词。也就是说,"$@"相当于"$1" "$2" ....如果双引号扩展发生在一个单词中,则第一个参数的扩展与原始单词的开头部分连接,最后一个参数的扩展与原始单词的最后一部分连接。如果没有位置参数,"$@"$@会展开为空(即删除它们)。

一个展示相同的小例子,

function foo() {
    printf "%s\n" "$@"
}

foo 1 2 3

会打印

1
2
3