Ваша конкретная ошибка вызвана --execute
неправильным использованием этой опции. Если вы посмотрите на отрывок из страницы ниже, вы заметите , что --execute
не имеет знака равенства указаны как часть синтаксиса, так как он просто выполняет всю остальную часть командной строки. Пример правильного использования будет:
gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'
ВАЖНОЕ ПРИМЕЧАНИЕ:
использование cd
в любом случае является частным случаем. cd
не похож на большинство команд - он не запускает собственный двоичный файл / исполняемый файл. Он интерпретируется напрямую bash
(или любой другой оболочкой, которую вы используете). Поэтому попытки Invoke 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
также приведет к знакомой ошибке «Нет такого файла или каталога».)
Я надеюсь, что это не слишком долго. Я просто пытаюсь быть тщательным.