use*_*965 20 unix arrays shell for-loop zsh
我在ZSH工作,但我确信BASH指令也可能有所帮助.我需要一个for循环,通过存储在数组lw中的值,然后根据存储在数组中的名称启动一个shell脚本.
到目前为止,这是我提出的:
$lw=('plugin1' 'plugin2' 'plugin3')
for i in $lw;
do . ~/Library/Rogall/plugins/$lw[$i]/lw.prg end;
done
Run Code Online (Sandbox Code Playgroud)
它只是给我一个错误,当运行说它找不到〜/ Library/Rogall/plugins // lw.prg,所以它似乎只是忽略了我的变量all togethor.
我搞砸了的任何想法?
Jan*_*ger 38
它实际上比这简单得多:
lw=('plugin1' 'plugin2' 'plugin3')
for i in $lw; do
. ~/Library/Rogall/plugins/$i/lw.prg end
done
Run Code Online (Sandbox Code Playgroud)
综上所述:
Wil*_*ell 19
为什么要使用这个阵列呢?这可以很容易地在便携式中完成:
lw='plugin1 plugin2 plugin3'
for i in $lw;
do . ~/Library/Rogall/plugins/$i/lw.prg end
done
Run Code Online (Sandbox Code Playgroud)
请注意,要使其在zsh中工作,您需要使zsh做正确的事情: set -o shwordsplit
the*_*sti 11
我遇到了一个问题,像这样的循环
for i in (1 2 3 4); do echo $i; done
Run Code Online (Sandbox Code Playgroud)
多次没有按照我想要的方式工作。我会得到像这样的错误zsh: unknown file attribute: 1,或者像这样的输出
1 2 3 4
Run Code Online (Sandbox Code Playgroud)
不管我如何重新扭曲它,而不是我想要的
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
为了获得我想要的行为,我必须in从循环定义中删除关键字
for i (1 2 3 4); do echo $i; done
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24015 次 |
| 最近记录: |