【发布时间】:2014-06-07 12:20:15
【问题描述】:
使用 CentOS 6.4
执行:
var1=$(softnas-cmd checkupdate | jq .success)
给我一个错误:
"parse error: Invalid numeric literal at line 1, column 9"
如果我执行 var1=$(softnas-cmd checkupdate) 后跟 echo $var1 我得到:
{"success" : true, "session_id" : 1935, "result" : {"success":true,"msg":"You are running the latest version","records":{"version":"2.1.3.el6.x86_64","newversion":"2.1.3.el6.x86_64","updateavailable":false,"msg":"You are running the latest version"},"total":4}}
如果我然后执行 var2=$(echo $var1 | jq .success) 这有效,我得到了预期:
真的
最终我想这样做:
if [ $(softnas-cmd checkupdate | jq .succcess) = "true" ]; then
echo "update required"
...
fi;
谁能告诉我如何格式化命令替换,以便我可以一次性执行?
谢谢
【问题讨论】:
-
var1=$(softnas-cmd checkupdate)后跟echo "$var1"(注意双引号!)打印什么? -
[ec2-user@ip-10-0-10-145 ~]$ var1=$(softnas-cmd checkupdate) [ec2-user@ip-10-0-10-145 ~] $ echo "var1$" var1$ [ec2-user@ip-10-0-10-145 ~]$ [ec2-user@ip-10-0-10-145 ~]$ echo $var1 {"成功" : true, "session_id" : 32270, "result" : {"success":true,"msg":"你正在运行最新版本","records":{"version":"2.1.3.el6.x86_64" ,"newversion":"2.1.3.el6.x86_64","updateavailable":false,"msg":"你运行的是最新版本"},"total":4}} [ec2-user@ip-10 -0-10-145 ~]$
标签: linux bash command substitution