在变量中切换用户和存储命令输出

时间:2017-07-27 11:01:43

标签: bash

在我的脚本中切换用户时,我试图将命令输出变为变量:

checkOutput="$(echo command1 | su - user1)"

但在变量上使用echo并不会返回所需的结果:

echo $checkOutput

输出:

Oracle Corporation SunOS ... January 2005 logout

所需输出(存储在变量中):

Java version ...
Apache Qpid is RUNNING with PID=5227

在终端中运行命令echo command1 | su - user1时,输出为:

Oracle Corporation SunOS ... January 2005
Java version ...

Apache QPID is RUNNING with PID=5227

logout

我知道当调用su - user1时,脚本会退出当前范围。有没有办法存储命令的输出?或者使用bash是不可能的。

由于

1 个答案:

答案 0 :(得分:0)

使用script命令记录文件中的输出。所以它看起来像这样:

script -c '$(echo command1 | su - user1)' -f file.txt

然后,您可以引用此文件以从中获取所需的输出。