Как открыть несколько вкладок терминала в разных папках (рабочие каталоги)?

Я хочу, чтобы один скрипт открывал несколько вкладок в разных папках.

Во время поиска я нашел эту запись, но обмен, как показано ниже, открыл терминал с тремя вкладками в моей домашней папке. Сообщение об ошибке показало:

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 /" тоже не помогла. Вы видите ошибку?

Следующее работает для меня на однообразном. Вы можете использовать это вместо своей версии:

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

Ваша конкретная ошибка вызвана неправильным использованием опции --execute . Если вы посмотрите на выдержку из страницы руководства ниже, вы заметите, что --execute не имеет знака равенства, указанного как часть синтаксиса, так как он просто выполняет всю оставшуюся часть командной строки. Примером правильного использования может служить:

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

ВАЖНАЯ ЗАМЕТКА:
cd всяком случае, использование cd является чем-то особенным. cd не похож на большинство команд – он не запускает собственный бинарный / исполняемый файл. Он интерпретируется непосредственно bash (или любой другой оболочкой, которую вы используете). Поэтому попытка вызова cd не согласуется с --execute и -x (которые, похоже, хотят непосредственно порождать дочерний процесс). Такая же проблема будет (я проверял) с другими командами, которые напрямую обрабатываются bash как 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 также приведет к ошибке «Нет такого файла или каталога».)

Надеюсь, это не слишком долго. Я просто стараюсь быть основательным.