gpt4 book ai didi

bash - shell $@ 变量赋值和迭代

转载 作者:行者123 更新时间:2023-11-29 09:00:31 25 4
gpt4 key购买 nike

function f() {
for arg; do
echo "$arg"
done
}

f 'hello world' 'second arg' '3rdarg'

这很好用:

hello world
second arg
3rdarg

但是我什么时候把$@赋值给某个变量,然后就出错了:

function f() {
local args="$@"
for arg in "$args"; do
echo "$arg"
done
}

输出:

hello world second arg 3rdarg

当我取消对 $args 的引用时,每个参数都被拆分成单个单词:

hello
world
second
arg
3rdarg

最后,我想知道是否有一种方法可以像 $@ 那样定义变量。我们将不胜感激。

最佳答案

你需要使用数组:

function f() {
local args=("$@") # values in parentheses
for arg in "${args[@]}"; do # array expansion syntax
echo "$arg"
done
}

关于bash - shell $@ 变量赋值和迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33622771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com