Necesito abrir varias pestañas de terminal, darles títulos, ir a un directorio y hacer que cada pestaña ejecute un comando.
Soy nuevo en Linux y las secuencias de comandos de shell, después de buscar en línea y verificar algunas soluciones, hice esta secuencia de comandos (EDITADO basado en las respuestas a continuación):
#!/bin/bash
cd /media/Extra/Project
tab=" --tab-with-profile=Default"
options=(--tab --title=Terminal)
cmds[1]="'rails s'"
titles[1]="Server"
cmds[2]="'rails c'"
titles[2]="Console"
for i in 1 2; do
options+=($tab --title="${titles[i]}" -e "bash -c "${cmds[i]} ; bash"" )
done
gnome-terminal "${options[@]}"
exit 0
Abre las pestañas, las nombra, pero falla al ejecutar los comandos generando este error:
Hubo un error al crear el proceso hijo para este terminal
Otra deficiencia es que si detengo el comando en ejecución, cierra la pestaña, lo cual no quiero. Necesito poder detener el comando y ejecutarlo nuevamente dentro de la misma pestaña.
¿Qué tiene de malo el guión? ¿Existe otra forma más sencilla de hacerlo?
Nota:si eliminé la parte (-e “”bash -c ${cmds[i]};bash””) del comando, abre las pestañas en el directorio dado y las nombra, sin errores.
-Editar-1:
Después de aplicar la respuesta de @Tuknutx a continuación y editar el script, el error ya no aparece, pero me da bash: rails c: command not found
y rails s
crea una nueva aplicación de rieles en lugar de iniciar el servidor de rieles, estoy usando .rmvrc para seleccionar un conjunto de gemas una vez que se accede a esta carpeta.
Respuesta aceptada:
Recomendaría usar tmux
con tmuxinator
, hará el trabajo por ti y puedes confiar en terminator
diseños también!
Para terminator
diseño de verificación de la respuesta de mhnagaoka aquí askubuntu también:
-
Después de configurar su diseño, haga clic con el botón derecho en cualquier fondo de terminal y elija Preferencias → Diseños pestaña y haga clic en Agregar botón.
-
Dale un nombre y presiona Cerrar .
-
Esto debería crear el
~/.config/terminator/config
mencionado archivo. -
Ahora puede iniciar Terminator usando el diseño guardado usando:
terminator -l yourLayout
(reemplace suDiseño con lo que hayas
elegido en el paso 2). -
(opcional) Edite el
~/.config/terminator/config
archivo para que donde dice[layouts]
y anidado debajo de él[[yourLayout]]
, cambie el nombre de yourLayout a predeterminado y elimine/cambie el nombre del predeterminado anterior diseño. Ahora, cuando Terminator se inicie sin ningún parámetro,
cargará su[[default]]
personalizado. diseño!