У меня есть текстовая игра Colossal Cave Adventure, которую я хотел бы запустить с помощью сценария оболочки вместо открытия терминала и ввода cd ~/Desktop/CCA
и ./Adventure
. Код, который я пытаюсь использовать, выглядит следующим образом:
#! /bin/bash
gnome-terminal -e 'cd ~/Desktop/CCA/; ./Adventure'
и полученное сообщение:
There was an error creating the child process for this terminal
Failed to execute child process `cd` (No such file or directory)
с вариантами изменения настроек профиля или повторного запуска процесса. Я также попытался использовать абсолютный путь вместо ~/
, и все мои имена файлов написаны правильно и указывают на правильное место. Что не так?
cd
встроенная оболочка. необходимо использовать это:
#! /bin/bash
gnome-terminal --working-directory=/home/username/Desktop/CCA/ -e './Adventure'
Ошибка
Failed to execute child process "cd" (No such file or directory)
возникает потому что cd
один из SHELL BUILTIN COMMANDS
и не исполняемый файл, который Вы физически находите на своем Жестком диске.
Выполнять его или другие built-in
команды в Вас пишут сценарий, необходимо передать всю строку a bash
вызов
gnome-terminal -e '/bin/bash -c "cd ~/Desktop/CCA/; ./Adventure" '
Если нет никакой другой внутренней команды, которую необходимо выполнить, можно установить рабочий каталог для gnome terminal
, как просто отвечено здесь:
gnome-terminal --working-directory=/home/username/Desktop/CCA/ -e './Adventure'
До тошноты: существуют некоторые альтернативы:
Если Вы находитесь только в терминале, можно или сделать
alias
как
alias Star_My_Game="cd ~/Desktop/CCA; ./Adventure "
и вставленный в него Ваш .bashrc
или в ~/.bash_aliases
так, чтобы Вы смогли работать с единственной командой Start_My_Game
в каждой оболочке Вы будете (Это более удобно для выбора более простого / краткого названия, чем Start_My_Game...),
или сценарий, что можно сделать исполняемый файл (chmod u+x MYscript
) и вставленный в Ваш path
(обычно ~/bin
хороший кандидат).
Я предполагаю, что можно поместить ссылку на рабочий стол, которые выполняют терминал и изменяют стартовое поведение. От справки гнома
Выберите редактирование ▸ предпочтения профиля ▸ заголовок и команда.
Проверьте Выполнение пользовательская команда вместо моей оболочки.
В текстовом поле введите команду или желаемую оболочку.
Команда будет передана терминалу точно, поскольку Вы пишете это, включая любые аргументы, что Вы указываете. Переменные среды будут наследованы от терминала, поскольку это - дочерний процесс терминала.
Откройте новую вкладку Terminal или окно, чтобы видеть, как пользовательская оболочка или команда выполняются