我正在尝试执行以下命令,但输出未按要求发送。
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
$:
答案 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
将为空