【问题标题】:Open multiple tabs and execute command in shell script打开多个选项卡并在 shell 脚本中执行命令
【发布时间】:2017-05-19 19:24:39
【问题描述】:
#!/bin/bash

tab="--tab"
cmd="bash -c 'python';bash"
foo=""

for i in 1 2 3; do
      foo+=($tab -e "$cmd")         
done

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

exit 0

我正在使用这个脚本通过 shell 脚本打开多个标签。

调用它multitab.sh并以这种方式执行user@user:~$ sh multitab.sh

目前该脚本应该打开 3 个选项卡,所有选项卡都将执行 python 命令。 但是当我执行它时,会抛出错误

multitab.sh: 8: multitab.sh: Syntax error: word unexpected (expecting ")")

这个错误的原因是什么?如何让这个脚本执行 3 个不同的命令?

我已经通过了。在 SOF 线程下,但没有一个对我有用。

【问题讨论】:

    标签: linux bash shell ubuntu ubuntu-14.04


    【解决方案1】:

    这是因为您正在使用 sh 运行脚本,其中用于添加元素的 += 语法不可用:

    foo+=($tab -e "$cmd")
    #  ^^
    

    所以你需要做的就是用 Bash 运行脚本:

    bash multitab.sh
    

    或者只是使用./multitab.sh(在给文件提供执行模式之后),因为脚本中的shebang(#!/bin/bash)已经提到了Bash。

    来自 Bash 参考手册:

    Appendix B Major Differences From The Bourne Shell

    - Bash 支持“+=”赋值运算符,它附加到左侧命名的变量的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      相关资源
      最近更新 更多