LINUX - 变量中的saltstack cmd.run

时间:2015-05-20 20:52:43

标签: linux bash shell salt-stack

我知道我可以使用sl从salt运行命令,但我需要通过bash脚本运行某些命令。我需要将命令的结果存储到变量中。

在salt服务器的shell上运行以下命令时,它可以工作,我得到一个结果

salt -t70 'server' cmd.run "cat /etc/shadow | grep user |cut -d: -f3"

但是当我将命令迁移到salt服务器中的bash文件中的变量时,它不会。

BASH.SH

test = $(echo salt -t70 $server cmd.run "cat /etc/shadow | grep $user |cut -d\":\" -f3");
echo $test;

错误消息

[root@saltserver ~]# sh bash.sh
bash.sh: line 13: test: too many arguments

我错过了什么?我需要修复什么才能使其正常工作? 感谢

1 个答案:

答案 0 :(得分:1)

你不能在作业中放置=周围的空格 - 这样做会使操作......好吧,不再是作业。也就是说:

使用

# assign result to a variable named test
test=$(echo salt -t70 $server cmd.run "cat /etc/shadow | grep $user |cut -d\":\" -f3");

# run the command named test, with its first argument '=' and its second argument
# taken from the results of invoking saltstack.
test = $(echo salt -t70 $server cmd.run "cat /etc/shadow | grep $user |cut -d\":\" -f3");