Ваша конкретная ошибка вызвана --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также приведет к знакомой ошибке «Нет такого файла или каталога».)
Я надеюсь, что это не слишком долго. Я просто пытаюсь быть тщательным.