Bash脚本需关闭首个gedit文件才打开第二个,如何实现同时打开?
Bash脚本实现两个gedit窗口同时打开的解决方法
我编写了一个Bash脚本用于创建并打开两个日期命名的文件,脚本内容如下:
#!/bin/bash mynewdate="$(date '+%d-%m-%Y')" cd /my/path/ echo "preparing files..." pilot="pilot-mode-"${mynewdate} echo $pilot touch $pilot cat pilot-mode-schema >> $pilot gedit $pilot cd distractions distratcions="distractions-"${mynewdate} echo $distratcions touch $distratcions cat distractions-schema >> $distratcions gedit $distratcions
执行脚本时,第一个gedit $pilot窗口打开后,必须关闭它才会打开第二个文件窗口,希望调整脚本实现两个窗口同时打开。
解决方案
要让两个gedit窗口同时打开,只需在每个gedit命令末尾加上&符号,将进程放到后台运行。这样脚本不会等待当前gedit进程结束,会直接执行后续命令。
另外注意脚本里的拼写错误:distratcions应该修正为distractions,否则会导致变量命名错误,影响第二个文件的创建和打开。
修改后的完整脚本:
#!/bin/bash mynewdate="$(date '+%d-%m-%Y')" cd /my/path/ echo "preparing files..." pilot="pilot-mode-"${mynewdate} echo $pilot touch $pilot cat pilot-mode-schema >> $pilot gedit $pilot & # 将第一个gedit进程后台运行 cd distractions distractions="distractions-"${mynewdate} # 修正拼写错误 echo $distractions touch $distractions cat distractions-schema >> $distractions gedit $distractions & # 将第二个gedit进程后台运行
&符号的作用是将当前命令放入后台执行,shell会立即返回并继续执行脚本的下一行代码,不需要等待该命令的进程终止,这样两个gedit进程可以同时启动,各自打开窗口。
内容的提问来源于stack exchange,提问作者Kasia Śrubka
相关产品推荐
相关产品推荐

