【问题标题】:Ubuntu shell script to open multiple tabs , load bashrc fileUbuntu shell脚本打开多个标签,加载bashrc文件
【发布时间】:2015-02-24 12:19:43
【问题描述】:

嗨,我正在手动执行以下步骤

  1. 打开终端(加载 ~/.bashrc)
  2. 打开 6 个标签
  3. 为每个标签设置标题
  4. source libray files source test.sh tab1 命令在每个选项卡中具有不同的参数。
  5. 运行测试 (./run.sh)

我尝试使用 gnome-terminal(使用以下链接)使用 shell 脚本自动执行上述步骤, https://askubuntu.com/questions/500357/opening-multiple-terminal-tabs-and-running-command 选项卡正在打开但标题没有保存它正在重置并且命令source ~/test.sh tab1 给出错误“没有这样的文件或目录”

代码:

#!/bin/bash

cd /media/Extra/Project

tab=" --tab-with-profile=Default"
options=(--tab --title=Terminal)

cmds[1]="'source ~/test_1.sh; ./run.sh'"
titles[1]="test_1"

cmds[2]="'source ~/test_2.sh; ./run.sh'"
titles[2]="test_2"


cmds[3]="'source ~/test_3.sh; ./run.sh'"
titles[3]="test_3"

cmds[4]="'source ~/test_4.sh; ./run.sh'"
titles[4]="test_4"

cmds[5]="'source ~/test_5.sh; ./run.sh'"
titles[5]="test_5"

cmds[6]="'source ~/test_6.sh; ./run.sh'"
titles[6]="test_6"

for i in 1 2 3 4 5 6; do
    options+=($tab --title="${titles[i]}"  -e "bash -ic \"${cmds[i]} ; bash\"" )     
done

gnome-terminal "${options[@]}"

exit 0

【问题讨论】:

  • 错误消息含糊地表明您使用的是sh 而不是bash,因此在使用bashism 时会收到错误消息。无论如何,请向我们展示您的脚本。
  • 用脚本更新了问题
  • 包含准确的错误消息也会有所帮助,但我想我有一个答案。

标签: bash ubuntu gnome-terminal


【解决方案1】:

双引号内的单引号导致整个字符串被解释为命令的名称、空格和所有内容,这当然不起作用。删除它们,您的脚本应该可以工作(尽管仍然有些笨拙)。

另见http://mywiki.wooledge.org/BashFAQ/050

【讨论】:

  • 无论如何,如果脚本真的如此重复,只需考虑循环内的所有内容并完全摆脱数组。
  • 感谢我们“删除双引号内的单引号”和“使用完整路径源 /full/path/test.sh tab1”。正如 candymanuu 提到的那样。
  • 您并不需要完整路径,但不能在引号内使用~/
【解决方案2】:

使用完整路径

source /full/path/test.sh tab1

向我们展示你的剧本,就像三胞胎说的那样

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多