Я хочу, чтобы один скрипт открывал несколько вкладок в разных папках.
Во время поиска я нашел эту запись, но обмен, как показано ниже, открыл Терминал с тремя вкладками в моей домашней папке. Сообщение об ошибке показывало:
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 /" также не помогло. Вы видите ошибку?
Следующее работает для меня на oneiric. Вы можете использовать это вместо вашей версии:
#!/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
не похож на большинство команд — это не запускает собственный двоичный файл/исполняемый файл. Это интерпретируется непосредственно 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
также не приведет к знакомому "Такой файл или каталог" ошибка.)
Я надеюсь, что это не слишком длинно. Я просто пытаюсь быть полным.