Linux Shell脚本反斜杠失效及GNOME终端多标签创建失败问题
问题原因与解决方法
1. --window: command not found 错误原因
脚本中用反斜杠换行时,反斜杠后不能有任何空格或制表符。shell会把带后续空格的反斜杠识别为“转义空格”,而非换行续行符。这会导致原本属于gnome-terminal的参数(--window、--tab)被当成独立命令执行,从而触发找不到命令的错误。
2. 仅打开一个标签页的问题
去掉反斜杠后的空格仍只显示一个标签页,是因为gnome-terminal的参数结构不符合预期:
- 默认情况下,
gnome-terminal启动一个窗口并自带1个标签页。 - 每个
--tab参数的作用是在当前窗口新增一个标签页,而非创建新窗口。 - 要得到一个带3个标签页的窗口,需要在
--window后添加2个--tab参数(默认1个 + 新增2个 = 3个)。
正确脚本写法
#!/bin/bash gnome-terminal \ --window \ --tab \ --tab
或更简洁的形式:
#!/bin/bash gnome-terminal --window --tab --tab
额外说明
- 执行脚本建议用
./myScript(需先赋予执行权限:chmod +x myScript),没必要用. ./myScript(source方式会在当前shell环境执行,对这个命令无特殊作用)。 - 若要给每个标签页指定执行命令,可使用
--tab --command="你的命令"的格式,示例:
gnome-terminal \ --window \ --tab --command="ls -l" \ --tab --command="top"
内容的提问来源于stack exchange,提问作者bonbon
相关产品推荐
相关产品推荐

