我正在OS X上编写一个shell脚本,我不知道如何重用返回的值并将它们保存为变量。例如,如果我在终端内输入命令“git submodule foreach --recursive”,我会打印3行,如下所示:
Entering 'path/of/submodule/1'
Entering 'path/of/submodule/2'
Entering 'path/of/submodule/3'
现在我想使用这些路径字符串在我的脚本中进一步操作。所以我需要将它们保存在像Array这样的东西中......这是我第一次尝试shell脚本,所以任何建议都是非常受欢迎的。
答案 0 :(得分:0)
典型的方法是将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
是最直接的。