切换用户运行多个命令并将所有命令的输出发送到文件的最佳方法是什么?
需要在一行中完成,例如:
sudo -u user (command1; command2; command3; command4; command5) > out.log 2&1
提前致谢。
答案 0 :(得分:0)
sudo -u user command1 > outFile; command2 >> outFile; command3 >> outFile; command3 >> outFile; command4 >> outFile;
如果您希望后续命令在前一个命令失败时不执行,那么......
command1 > outFile && command2 >> outFile && command3 >> outFile && command3 >> outFile && command4 >> outFile;
请注意,command1输出通过'>'传送到outFile (这将创建一个文件并添加输出),而所有后续命令都通过'>>'进行管道传输(将附加输出)
答案 1 :(得分:0)
运行以分号分隔的多个命令需要shell。要获得这样的shell功能,必须调用一个shell,在本例中为bash:
sudo -u user bash -c 'command1; command2; command3; command4; command5' > out.log 2&1
此处,sudo -u user bash
在bash
下运行user
。 -c
选项告诉bash
要运行哪些命令。