jar*_*ead 14 bash execute xterm terminate
我想运行xterm -e file.sh而不终止.
在文件中,我将命令发送到后台,当脚本完成后,它们仍然没有完成.
我目前正在做的是:
(cd /myfolder; /xterm -ls -geometry 115x65 -sb -sl 1000)
Run Code Online (Sandbox Code Playgroud)
然后窗口弹出后
sh file.sh
exit
Run Code Online (Sandbox Code Playgroud)
我想做的是:
(cd /myfolder; /xterm -ls -geometry 115x65 -sb -sl 1000 -e sh file.sh)
Run Code Online (Sandbox Code Playgroud)
没有终止并等到后台的命令完成.
谁知道怎么做?
imw*_*nxu 23
使用hold选项:
xterm -hold -e file.sh
Run Code Online (Sandbox Code Playgroud)
-hold打开hold资源,即,当shell命令完成时,xterm不会立即销毁其窗口.它会等到你使用窗口管理器来销毁/杀死窗口,或者你使用发送信号的菜单项,例如HUP或KILL.
小智 12
我试着-hold,它让xterm处于无响应的状态,需要通过非标准方法关闭(窗口管理器,一个kill命令).如果您希望有一个可以退出的开放shell,请尝试将该shell添加到命令的末尾:
xterm -e "cd /etc; bash"
Run Code Online (Sandbox Code Playgroud)
我在Super User上找到了答案.
小智 6
基于先前的答案,如果您指定 $SHELL 而不是 bash,它将使用用户首选的 shell。
xterm -e "cd /etc; $SHELL"
Run Code Online (Sandbox Code Playgroud)
使用waitshell脚本中的内置脚本。它将等到所有后台作业完成。
工作示例:
#!/bin/bash
# Script to show usage of wait
sleep 20 &
sleep 20 &
sleep 20 &
sleep 20 &
sleep 20 &
wait
Run Code Online (Sandbox Code Playgroud)
输出
sgulati@maverick:~$ bash test.sh
[1] Done sleep 20
[2] Done sleep 20
[3] Done sleep 20
[4]- Done sleep 20
[5]+ Done sleep 20
sgulati@maverick:~$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49900 次 |
| 最近记录: |