我正在OS X上编写Shell脚本,但我不知道如何重用返回的值并将其另存为变量。例如,如果我在终端中输入命令“ git submodule foreach --recursive”,我将打印3行,如下所示:
Entering 'path/of/submodule/1'
Entering 'path/of/submodule/2'
Entering 'path/of/submodule/3'
现在,我想在脚本中使用这些路径字符串进行进一步操作。所以我需要将它们保存在诸如数组之类的东西中。这是我第一次尝试shell脚本,因此非常欢迎提出任何建议。
典型的方法是将stdout馈送到while循环:
git submodule foreach --recursive \
| while read line ; do
echo Processing $line
...
done
要严格回答您的问题,您还可以使用以下命令将命令的结果分配给变量
a=$(git submodule foreach --recursive)
如果要a
成为数组,请使用
a=($(git submodule foreach --recursive))
但是bash倾向于在空格处分割,因此在包含空格的字符串上使用该语法时需要小心,并且期望在换行符处进行分割。
如果您的目标只是一次处理一行输出,那么这while
是最简单的一行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句