[服务器] 七: bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行
如果脚本需要用户交互,那么将其放在后台运行时,可以通过以下方法解决交互问题:
方法一:使用 tmux 或 screen
这些工具可以让你在后台运行脚本并保留交互功能。
- 启动一个
tmux或screen会话tmux new -s myscript
或者
screen -S myscript
运行脚本
在会话中运行你的脚本:bash -x run.sh分离会话
按下Ctrl + B,然后按D(对于tmux)。
或者按下Ctrl + A,然后按D(对于screen)。重新连接会话
随时通过以下命令重新连接:tmux attach -t myscript或者
screen -r myscript
方法二:使用 nohup + tail -f 实时查看日志
如果你希望后台运行并观察日志:
后台运行脚本
nohup bash -x run.sh > script.log 2>&1 &实时查看日志
打开一个新的终端窗口,使用以下命令实时查看日志输出:tail -f script.log输入交互
这种方式适用于输入有限交互的脚本,但如果需要频繁交互,建议使用tmux或screen。
方法三:通过管道输入数据
如果你知道交互时需要输入的内容,可以将它提前写入文件,并使用重定向提供输入。
创建输入文件
假设交互需要输入以下内容:1 2 3保存到
input.txt:echo -e "1\n2\n3" > input.txt运行脚本并提供输入
bash -x run.sh < input.txt后台运行
使用nohup后台运行:nohup bash -x run.sh < input.txt > script.log 2>&1 &
方法四:设置默认值(适合需要很少输入的情况)
在脚本中为交互输入设置默认值,这样在没有用户输入时,脚本可以继续执行:
修改你的脚本中
演示
![[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行](https://cdn.learnku.com/uploads/images/202412/03/46135/3MuDhX2rWp.png!large)
这就打开了 交互窗口
![[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行](https://cdn.learnku.com/uploads/images/202412/03/46135/lE7RnsMPeD.png!large)
可以执行交互,执行命令。
然后也可以发现服务启动了,这边cpu都满了
![[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行](https://cdn.learnku.com/uploads/images/202412/03/46135/o4YfbvjFVo.png!large)
后台先关闭窗口
ctrl B
![[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行](https://cdn.learnku.com/uploads/images/202412/03/46135/YzFGSSmY2w.png!large)
再按D
![[linux]bash -x run.sh 这个命令 如果有交互行为,如何设置 ubuntu 为后台执行](https://cdn.learnku.com/uploads/images/202412/03/46135/fkS45OZSXz.png!large)
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: