[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行

如果脚本需要用户交互,那么将其放在后台运行时,可以通过以下方法解决交互问题:

方法一:使用 tmuxscreen

这些工具可以让你在后台运行脚本并保留交互功能。

  1. 启动一个 tmuxscreen 会话
    tmux new -s myscript

或者

   screen -S myscript
  1. 运行脚本
    在会话中运行你的脚本:

    bash -x run.sh
  2. 分离会话
    按下 Ctrl + B,然后按 D(对于 tmux)。
    或者按下 Ctrl + A,然后按 D(对于 screen)。

  3. 重新连接会话
    随时通过以下命令重新连接:

    tmux attach -t myscript

    或者

    screen -r myscript

方法二:使用 nohup + tail -f 实时查看日志

如果你希望后台运行并观察日志:

  1. 后台运行脚本

    nohup bash -x run.sh > script.log 2>&1 &
  2. 实时查看日志
    打开一个新的终端窗口,使用以下命令实时查看日志输出:

    tail -f script.log
  3. 输入交互
    这种方式适用于输入有限交互的脚本,但如果需要频繁交互,建议使用 tmuxscreen

方法三:通过管道输入数据

如果你知道交互时需要输入的内容,可以将它提前写入文件,并使用重定向提供输入。

  1. 创建输入文件
    假设交互需要输入以下内容:

    1
    2
    3

    保存到 input.txt

    echo -e "1\n2\n3" > input.txt
  2. 运行脚本并提供输入

    bash -x run.sh < input.txt
  3. 后台运行
    使用 nohup 后台运行:

    nohup bash -x run.sh < input.txt > script.log 2>&1 &

方法四:设置默认值(适合需要很少输入的情况)

在脚本中为交互输入设置默认值,这样在没有用户输入时,脚本可以继续执行:

修改你的脚本中

演示

[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行

这就打开了 交互窗口

[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行

可以执行交互,执行命令。

然后也可以发现服务启动了,这边cpu都满了

[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行

后台先关闭窗口

ctrl B

[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行

再按D

[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行

本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海PHP自学中心
wangchunbo
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 某医疗行业
文章
299
粉丝
346
喜欢
563
收藏
1124
排名:61
访问:12.5 万
私信
所有博文
社区赞助商