我有这样的脚本?
command='scp xxx 192.168.1.23:/tmp'
su - nobody -c "$command"
主外壳没有打印任何信息。如何从 sub 命令获取输出?
您只需重定向相应的输出通道即可获得其所有输出:
command='scp ... '
su - nobody -c "$command" > file
或者
var=$(su - nobody -c "$command")
但是如果你什么也没看到,可能是 scp 的诊断输出被禁用了?您的真实命令中是否有“-q”选项?
你实际上并没有运行 scp。当您使用
VAR=value cmd ...
语法,VAR=value
设置进入环境,cmd
但在当前 shell 中不可用。你之后的命令-c
是空的,或者$command
如果有的话的前一个值。