@ 的含义在以下代码摘录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中的含义无法产生良好的效果。
答案 0 :(得分:3)
GNU man bash页面将是一个很好的起点
@
(
$@
)从1开始扩展到位置参数。当扩展发生在双引号内时,每个参数都会扩展为单独的单词。也就是说,"$@"
相当于"$1"
"$2"
....如果双引号扩展发生在一个单词中,则第一个参数的扩展与原始单词的开头部分连接,最后一个参数的扩展与原始单词的最后一部分连接。如果没有位置参数,"$@"
和$@
会展开为空(即删除它们)。
一个展示相同的小例子,
function foo() {
printf "%s\n" "$@"
}
foo 1 2 3
会打印
1
2
3