Linux bash脚本:在不同目录中具有不同命令的multitab终端
这个脚本应该打开3个选项卡(所有选项卡都用于不同的目录和不同的命令)。 e、 g.command1:将目录更改为Linux bash脚本:在不同目录中具有不同命令的multitab终端,linux,bash,shell,ubuntu,ubuntu-14.04,Linux,Bash,Shell,Ubuntu,Ubuntu 14.04,这个脚本应该打开3个选项卡(所有选项卡都用于不同的目录和不同的命令)。 e、 g.command1:将目录更改为/home/eric/project/p1,并执行命令ls。接下来的2个命令也是如此 但是当我执行这个bash脚本时,它会打开并立即关闭。我猜这是错误的,这就是为什么会发生这种情况,但我无法追踪 是否存在语法错误?为什么需要在结尾处退出0?请尝试以下操作:gnome terminal--tab--working directory=“/home/eric/project/p1”-e“l
/home/eric/project/p1
,并执行命令ls
。接下来的2个命令也是如此
但是当我执行这个bash脚本时,它会打开并立即关闭。我猜这是错误的,这就是为什么会发生这种情况,但我无法追踪
是否存在语法错误?为什么需要在结尾处退出0?请尝试以下操作:gnome terminal--tab--working directory=“/home/eric/project/p1”-e“ls”使其适应您的需要needs@Inian如果没有它,代码将以gnome终端返回的退出值退出。是,构造的命令存在语法问题<代码>bash-c''cd/home/。。;ls';bash不正确。在尝试编写构造gnome terminal的脚本之前,您应该先看看是否可以编写一个手动运行的
gnome terminal
命令。有关脚本调试技术,请参阅。第一件事是将set-x
放在gnome-terminal
命令上方的行上。这样,您将看到正在执行的操作,并可以检查gnome终端手册页以查看错误。为什么需要在结尾处退出0?请尝试以下操作:gnome终端--tab--working directory=“/home/eric/project/p1”-e“ls”将其适应您的需要needs@Inian没有它,代码将退出,退出值由gnome terminal
返回。是的,构造的命令存在语法问题<代码>bash-c''cd/home/。。;ls';bash不正确。在尝试编写构造gnome terminal的脚本之前,您应该先看看是否可以编写一个手动运行的gnome terminal
命令。有关脚本调试技术,请参阅。第一件事是将set-x
放在gnome-terminal
命令上方的行上。通过这种方式,您将看到正在执行的操作,并可以检查gnome终端手册页以查看错误。
#!/bin/bash
tab="--tab"
foo=""
cmds[1]="'cd /home/eric/project/p1;ls'"
titles[1]="title1"
cmds[2]="'cd /home/eric/project/p2;pwd'"
titles[2]="title2"
cmds[3]="'cd /home/eric/project/p3;dir"
titles[3]="title3"
for i in 1 2 3; do
foo+=($tab --title="${titles[i]}" -e "bash -c '${cmds[i]}';bash")
done
gnome-terminal "${foo[@]}"
exit 0