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

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

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

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

10
задан 13 April 2017 в 15:24

2 ответа

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

#!/bin/bash
gnome-terminal --tab  --working-directory="/var/www/" --tab --working-directory='/home/' --tab --working-directory='/home/'
exit 0
0
ответ дан 13 April 2017 в 15:24

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

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

ВАЖНОЕ ПРИМЕЧАНИЕ:
Используя cd что-то вроде особого случая, так или иначе. cd не похож на большинство команд — это не запускает собственный двоичный файл/исполняемый файл. Это интерпретируется непосредственно bash (или безотносительно оболочки Вы используете). Поэтому попытка вызвать cd не соглашается с --execute и -x флаги (которые, кажется, хотят непосредственно породить дочерний процесс). Та же проблема произойдет (я проверил) с другими командами, которые непосредственно обрабатываются bash как home. Даже если используемый правильно, без будет равняться знаку, то он все еще приведет к ошибке: "Файл или каталог, не найденный". Поэтому использование --working-directory=[DIRECTORY] опция является Вашим лучшим выбором для того, чтобы сделать то, что Вы хотите сделать.

ДРУГОЕ ВАЖНОЕ ПРИМЕЧАНИЕ:
Даже если бы это не имело место, то Вы все еще столкнулись бы с проблемой. Проблема заключается в попытке использовать --execute опция, когда Вы на самом деле предназначаете значение --command опция. В документации страницы справочника указывает это конкретно

- e, - command=STRING
Выполните аргумент этой опции в терминале.

- x, - выполняются
Выполните остаток от командной строки в терминале.

(шахта акцента)

Другими словами, это, вероятно, не собирается анализировать его в способе, которым Вы думаете, что это должно. Используя --execute препятствует тому, чтобы Вы передали дальнейшие опции gnome-terminal.

Выборка из одного из моих собственных сценариев, куда я выполняю несколько команд на отдельных вкладках (имена, изменившие для моей конфиденциальности/безопасности):

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

(Кстати, пытающийся использовать --command флаг с cd или home также не приведет к знакомому "Такой файл или каталог" ошибка.)

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

3
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: