zsh 导出具有动态名称的环境变量

问题描述 投票:0回答:1

将其添加到我的 zsh 配置中:

set-vars() {
  list="one two"
  for envar in $list
  do
    export "$envar"=$1
  done
}
$ set-vars orange

并出现错误:

set-vars:export:4: not valid in this context: one two

printenv one
echo $one
不返回任何内容

我看到有人在 bash 配置中这样做,zsh 不可能吗?我认为 zsh 比 bash 先进不少。

zsh
1个回答
0
投票

我认为您的代码可能有错误。其中列表是字符串,实际上不是列表类型。要解决这个问题,您可以使用带括号的数组语法

set-vars() {
  list=("one" "two")  # Create array with proper word separation
  for envar in "${list[@]}"  # Proper array iteration
  do
    export "${envar}"="$1"
  done
}
© www.soinside.com 2019 - 2024. All rights reserved.