我有一个my_script执行的 bash 脚本:
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 之外,我还能绕过这个吗?
scp具体来说,预先调用with可能就足够了unbuffer:
unbuffer scp -- 'somehost:*.txt' dest_dir