我正在zsh中工作,但是我敢肯定bash说明也将有所帮助。
我需要一个for循环,该循环遍历存储在数组lw中的值,然后根据存储在数组中的名称值启动一个shell脚本。
到目前为止,这是我想出的:

$lw=('plugin1' 'plugin2' 'plugin3')

for i in $lw;
  do . ~/Library/Rogall/plugins/$lw[$i]/lw.prg end;
done
运行此命令会给我一个错误,提示它找不到~/Library/Rogall/plugins//lw.prg。似乎好像完全忽略了我的变量。
有什么想法我搞砸了吗?

最佳答案

实际上比这简单得多:

lw=('plugin1' 'plugin2' 'plugin3')

for i in $lw; do
  . ~/Library/Rogall/plugins/$i/lw.prg end
done

综上所述:
  • 分配给foo,而不是$foo(shell会尝试扩展$foo并分配给它扩展到的对象;通常没有用)
  • 直接使用循环变量;它包含数组值,而不是索引
  • 07-27 13:59