我正在创建一个脚本,当我尝试捕获命令返回时,如果在终端上使用以下命令,则会发现命令错误:
gcloud -q compute snapshots list --format='csv(NAME)'
它工作正常。
脚本是:
#!/bin/sh
CSV_SNAPSHOTS= $(gcloud -q compute snapshots list --format='csv(NAME)')
IFS=$'\n'
for i in $CSV_SNAPSHOTS
do
echo "$i"
done
变量声明之后=
(以及之前=
)不得有任何空格。
因此,应该这样做:
CSV_SNAPSHOTS=$(gcloud -q compute snapshots list --format='csv(NAME)')
还要注意,您应该(几乎总是)引用变量和命令替换,尽管在将命令替换保存到变量时在这种情况下您会逃脱。
例子:
$ foo="$(echo spam)"
$ echo "$foo"
spam
$ bar= "$(echo egg)"
No command 'egg' found, did you mean:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句