如何在不同文件夹(工作目录)中打开几个终端选项卡?


10

我想要一个脚本在不同的文件夹中打开多个选项卡。

在搜索时,我找到此条目,但是如下所示的交换确实在主文件夹中打开了一个带有三个选项卡的终端。错误消息显示:

Failed to parse arguments: Unknown option --execute=cd /some/thing/

该脚本如下所示:

#!/bin/sh
gnome-terminal --tab --execute="cd /some/thing/" \
          --tab --execute="cd /home/" \
          --tab --execute="cd /home/" \
exit 0

--working-directory =“ / some / thing /”的变体也没有帮助。你看到错误了吗?

Answers:


8

以下对我而言有效。您可以使用它代替您的版本:

#!/bin/bash
gnome-terminal --tab  --working-directory="/var/www/" --tab --working-directory='/home/' --tab --working-directory='/home/'
exit 0

3

您的特定错误是由于未--execute正确使用该选项引起的。如果您从下面的手册页中查看摘录,您会注意到该语法--execute 中没有列出等号,因为它只是执行命令行的其余部分。正确使用的一个例子是:

gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'

重要说明:无论如何,
使用cd是一种特殊情况。cd与大多数命令不同,它不启动自己的二进制文件/可执行文件。它由bash(或您使用的任何shell)直接解释。因此,尝试调用cd--execute-x标志不一致(似乎想直接产生一个子进程)。使用其他直接由bashlike 处理的命令,也会发生相同的问题(我已经检查过)home。即使正确使用而没有等号,它仍然会导致错误:“找不到文件或目录”。因此,使用该--working-directory=[DIRECTORY]选项是完成您想要做的事情的最佳选择。

另一个重要说明:
即使不是这种情况,您仍然会遇到麻烦。问题在于--execute您实际上打算使用选项的含义时尝试使用该--command选项。在手册页文档中,它具体说明

-e,--command = STRING 在终端中
执行此选项的参数

-x,--
execute 在终端内部执行命令行其余部分

(强调我的)

换句话说,它可能不会按照您认为的方式进行解析。使用--execute可以防止您将其他任何选项传递给gnome-terminal

摘录自我自己的脚本之一,在其中我在单独的选项卡中运行了多个命令(更改了我的隐私/安全名称):

gnome-terminal --tab --command="ssh cjohnson@GLaDOS" --tab --command="ssh drattman@GLaDOS"

(顺便说一句,尝试将--command标志与cd或一起使用home也将导致常见的“无此类文件或目录”错误。)

我希望这不会太久。我只是想变得彻底。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.