小编eca*_*mur的帖子

调用与控制终端断开连接的命令/脚本?

我正在调查通常作为自动化进程(例如 cron、Jenkins)运行的脚本的行为。脚本可以(最终)调用以交互方式运行时行为不同(寻求用户输入)的命令;例如,patch会询问如何处理反向补丁,并svn询问密码,但我需要看看当它们以非交互方式运行时会发生什么。

说服patch它是非交互式的相当容易;我只需要重定向stdout为非 tty:

$ </dev/null > >(cat) /path/to/myscript --args
Run Code Online (Sandbox Code Playgroud)

但是svn,如果存在,将连接到控制终端;编辑要通过的脚本--non-interactive并不是一个真正的选择,因为这来自多个层次,很难确定我是否找到了每个调用。

有没有办法在没有控制终端的情况下以非交互方式调用脚本/命令(所以/dev/tty不存在)?我更喜欢 stdout/stderr 仍然去我的终端。

(我发现了在非交互式 shell 中运行脚本的问题但该问题的答案讨论了 cron 和用户环境之间的差异;我已经消除了除非交互性之外的所有差异。)

process terminal tty interactive controlling-terminal

9
推荐指数
1
解决办法
7995
查看次数