#!/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 我正在使用这个scirpt使用shell脚本打开多个选项卡。
 将其称为multitab.sh并以这种方式执行user@user:~$ sh multitab.sh 
目前这个脚本应该打开3个标签,他们都将执行python命令。 但是当我执行它,抛出错误
 multitab.sh: 8: multitab.sh: Syntax error: word unexpected (expecting ")") 
这个错误的原因是什么? 我怎样才能让这个脚本执行3个不同的命令?
我已经经历了。 低于SOF线程,但没有一个为我工作。
 这是因为您正在使用sh运行脚本,添加元素的+=语法不可用: 
 foo+=($tab -e "$cmd") # ^^ 
所以你所要做的就是用Bash运行脚本:
 bash multitab.sh 
 或者只是使用./multitab.sh (在执行模式给文件之后),因为脚本( #!/bin/bash )中的shebang已经提到了Bash。 
从Bash参考手册:
附录B与Bourne Shell的主要区别
– Bash支持'+ ='赋值运算符,该赋值运算符附加在左侧命名的变量的值上。