Estaba intentando abrir una nueva terminal de consola y un archivo fuente después de abrirlo. Probé el siguiente comando:
konsole -T hello --noclose -e "source file"
Quería que la terminal permaneciera abierta después de obtener el archivo, pero incluso con --noclose
la nueva consola cerrada. ¿Cómo puedo mantener la consola abierta?
Respuesta1
Supongo que quieres una sesión interactiva después de ejecutar el archivo fuente.
Konsole usa llamadas system() o popen() para ejecutar el parámetro -e. La fuente es una función incorporada de bash, por lo que no puedes simplemente llamarla.
Es difícil decirle a bash que ejecute comandos y luego inicie una sesión interactiva. Hay opciones --init-file y --rc-file pero se usarán en lugar de los archivos de configuración habituales. Puede que sea un inconveniente.
Creo que este script de shell funcionará para ti.
#!/usr/bin/env bash
source file
exec bash
Ponlo en el archivo "script.sh", hazlo ejecutable y ejecútalo de esa manera.
# Edit script.sh
chmod +x script.sh
konsole -e ./script.sh
Supongo que configuraste algunas variables en tu archivo. Debe exportarse si se usó en una sesión interactiva.
export VAR=value
O si no necesita una sesión interactiva, puede usar este script
#!/usr/bin/env bash
source file
echo "Press enter to exit"
read
Bien. Puede que también haya un error en la consola. Probablemente deberíamos informarlo.