SCP在子壳脚本中运行时没有列出



我有一个bash脚本my_script执行:

scp -- 'somehost:*.txt' dest_dir

现在,当我从交互式shell会话中运行这个脚本时,scp在复制文件时列出文件。但是当我运行第二个脚本时,包含:

exec 5>&1
foo=$(my_script | tee /dev/fd/5) || exit -1

(动机参见这个问题)- SCP在复制文件时不列出文件。

为什么?除了使用scp -v,我还能避免这个问题吗?

为什么?

scp程序检查输出是否为tty,如果是,则打印进度。如果输出不是tty,则不打印进度信息。

除了使用scp -v,我还能绕过这个问题吗?

如何欺骗命令,使其认为其输出将发送到终端

具体来说,在unbuffer之前调用scp可能就足够了:

unbuffer scp -- 'somehost:*.txt' dest_dir

相关内容

  • 没有找到相关文章

最新更新