Tengo un juego basado en texto, Colossal Cave Adventure, que me gustaría lanzar con un script de shell en lugar de abrir el terminal y escribir cd ~/Desktop/CCA
y ./Adventure
. El código que estoy tratando de usar es este:
#! /bin/bash
gnome-terminal -e 'cd ~/Desktop/CCA/; ./Adventure'
y el mensaje que recibo es este:
There was an error creating the child process for this terminal
Failed to execute child process `cd` (No such file or directory)
con opciones para cambiar las preferencias de perfil o reiniciar el proceso. También he intentado usar la ruta absoluta en lugar de ~/
, y todos los nombres de mis archivos están escritos correctamente y apuntan al lugar correcto. ¿Qué está mal?
gnome-terminal
Giaphage47
fuente
fuente
cd
no era una orden.cd
Ciertamente es un comando! Es lo que se conoce como un comando incorporado de shell , como dice correctamente la respuesta de Hastur . Los comandos de shell incorporados a menudo se denominan "shell builtins" o "builtins" para abreviar, pero son absolutamente comandos. Locd
que no es es un comando externo . Ubuntu no tiene ningúncd
programa (y si lo tuviera, ejecutarlo aún no tendría el efecto de cambiar el directorio en el shell desde el que lo ejecutó ). @ Giaphage47El error
Failed to execute child process "cd" (No such file or directory)
surge porque
cd
es uno de losSHELL BUILTIN COMMANDS
ejecutables que no se encuentra físicamente en su disco duro.Para ejecutarlo o los otros
built-in
comandos en su script, debe pasar toda la línea a unabash
invocaciónSi no hay otro comando interno que deba ejecutar, puede configurar el directorio de trabajo para
gnome terminal
, como se acaba de responder aquí :Hasta el hastío : hay algunas alternativas:
Si solo estás en una terminal, puedes hacer
un me
alias
gustaalias Star_My_Game="cd ~/Desktop/CCA; ./Adventure "
y póngalo en su
.bashrc
o adentro~/.bash_aliases
para que pueda ejecutar con el comando únicoStart_My_Game
en cada shell que será (es más acogedor elegir un nombre más simple / corto que Start_My_Game ...)o un script que puede hacer ejecutable (
chmod u+x MYscript
) y poner en supath
(normalmente~/bin
es un buen candidato).Supongo que puede poner un enlace en su escritorio que ejecute el terminal y modifique el comportamiento inicial. De la ayuda de GNOME
Seleccione Editar ▸ Preferencias de perfil ▸ Título y comando.
Marque Ejecutar un comando personalizado en lugar de mi shell.
En el cuadro de texto, escriba el comando o el shell deseado.
El comando se pasará al terminal exactamente como lo escribe, incluidos los argumentos que especifique. Las variables de entorno se heredarán del terminal, ya que es un proceso secundario del terminal.
Abra una nueva pestaña o ventana de Terminal para ver cómo se ejecuta el shell o comando personalizado
fuente
alias
(más acogedor) o un script en su directorio ~ / bin, sin iniciar un nuevo terminalcd
pero debe pasarlabash
. Dale un cheque :) -