0
我有这样的脚本?如何从subshell获得标准输出?
command='scp xxx 192.168.1.23:/tmp'
su - nobody -c "$command"
主壳没有打印任何信息。 如何从子命令中获取输出?
我有这样的脚本?如何从subshell获得标准输出?
command='scp xxx 192.168.1.23:/tmp'
su - nobody -c "$command"
主壳没有打印任何信息。 如何从子命令中获取输出?
你实际上并没有运行scp。当您使用
VAR=value cmd ...
语法中,VAR=value
设置进入的cmd
的环境,但在当前shell的不可用。 -c
后面的命令为空,或者前面的值为$command
(如果有)。
您可以通过在重定向对应的输出通道获得其所有的输出:
command='scp ... '
su - nobody -c "$command" > file
或
var=$(su - nobody -c "$command")
但是,如果你看不到任何东西,也许SCP输出的诊断是禁用? 你的真实命令中是否有“-q”选项?
它跑了,机器192.168.1.23可以接收文件。 – Yuxuan
好吧,你必须已经设置了'$ command',或者你正在使用一个shell(哪一个?),它的行为不像我见过的。或者你真的有一个你没有提到的分号。在一个案例中,你期望什么产出? –