我希望能够在 zsh 中执行“可变参数赋值”。
我认为以下内容可行,但我得到parse error near
=("${(@)1}")'`:
variadic() {
local a b
(a, b)=("${(@)1}")
echo "$a, $b!"
}
$ variadic Hello world # Desired output: Hello, world!
(a, b)=($1 $2)
导致类似的错误。
谢谢
我希望能够在 zsh 中执行“可变参数赋值”。
我认为以下内容可行,但我得到parse error near
=("${(@)1}")'`:
variadic() {
local a b
(a, b)=("${(@)1}")
echo "$a, $b!"
}
$ variadic Hello world # Desired output: Hello, world!
(a, b)=($1 $2)
导致类似的错误。
谢谢
for
在 中的循环中可以进行多变量赋值zsh
,因此一个(看起来不寻常的)选项是使用它,然后绕过循环体:上述函数使用了循环的简化形式
for
,并且还使用了默认列表 ($@
)。此等效版本具有完整的循环语法:
更传统的赋值也可以: