使用shell脚本在终端中按顺序执行多个命令

时间:2017-04-06 06:16:22

标签: linux bash shell scripting gnome-terminal

我想做以下事情:

  1. 打开终端。
  2. 转到目标脚本所在的目录。
  3. 打开提供目标脚本输入的文本文件。保持/等待,直到用户保存并关闭文本文件。
  4. 执行目标脚本。
  5. 我编写了以下脚本来执行上述操作:

    #!/bin/bash 
    echo "hello"
    gnome-terminal -x bash -c "cd ~/automation/DVF99_Automation/Scripts;pwd;gedit sample.txt;python test.py;exec $SHELL"
    echo "good bye"
    

    上面给出了以下输出:

    user4@user-pc-4:~/Desktop$ ./DAT_run.sh
    hello
    good bye
    

    在新的gnome-terminal打开时,我看到以下消息:

    /home/user4/Scripts
    From python script
    From python script
    From python script
    From python script
    From python script
    

    上面的意思是它已经执行了python代码,我的要求1,2和4已经满足(不是第3个)。在保存并关闭之前,我无法将gedit窗口保留为前台进程(因此只有在我关闭gedit中打开的文件后才会执行下一条语句。)< / p>

    这里可能出现什么问题?我是shell脚本的新手,觉得我在这里可能会遗漏一些东西。我怎样才能达到上述所有要求?

1 个答案:

答案 0 :(得分:0)

不过,你需要在后台启动gedit。

示例:

$ gedit sample.txt&;python test.py;exec $SHELL"

更好的是变量替换。

 #!/she/bang
 FILE=sample.txt
 gedit $(FILE)&;python test.py;exec $SHELL"