bash - scp 在 subshell 脚本中运行时没有列出
问题描述
我有一个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
推荐阅读
- clojure - clojure 如何绑定可变参数?
- xcode - 将登录屏幕放在其中一张介绍幻灯片中以进行颤动
- typescript - `ts.SyntaxKind.VariableStatement` 和 `ts.SyntaxKind.FirstStatement` 有什么区别
- java - “Native Crash At”发生在我的 App 用户身上
- mysql - 从多列值计算百分比
- javascript - 选中复选框时如何使用jquery在传单上显示饼图?
- javascript - 如何通过使用变量映射将缩小的 JavaScript 转换为未缩小的 JavaScript
- javascript - Group Array of objects table 1 嵌套表 2 中的键。 MySql - NodeJS (GET API)
- javascript - 井字游戏中计算机的随机位置选择无法正常工作
- java - 在杰克逊反序列化期间验证 JSON 有效负载时如何抛出异常?