如何将sudo -S su -c <user> <command />的输出存储到任何变量

时间:2016-04-25 05:02:22

标签: linux unix

我正在尝试执行以下命令,但输出未按要求发送。

var=$(echo "<password>"|sudo -S su -l <user> -c "<command>")

如果有人可以帮忙吗? 预期结果: var = $(echo&#34;&#34; | sudo -S su -l -c&#34; pwd&#34;) echo $ var / home / bhushan $: 实际结果: echo $ var

$:

2 个答案:

答案 0 :(得分:0)

您可以通过将命令的输出存储到文件中来解决此问题,然后更改其权限以便所有用户都能看到它,并在以下命令中从文件中加载它:

sudo -S "<command> > /tmp/sudocmd.out && chmod 644 /tmp/sudocmd.out"
var=$(cat /tmp/sudocmd.out)

答案 1 :(得分:0)

你可以使用反引号

var=`sudo -S su -l -c ""`

$(command)语法

var=$(sudo -S su -l -c "")

(请注意sudo -S su -l -c ""不会输出任何内容,因此$var将为空