¿Cómo puedo hacer que un script se reinicie en una ventana de Terminal si no se inició en una?
En base a esta pregunta , he intentado, en un archivo llamado testterm
ejecutable marcado:
#! /bin/sh
if [ -t 0 ]; # stdin
then
echo "yay! terminal!"
else
Terminal sh ~/Desktop/testterm
fi
... pero Haiku se Terminal
abre y nunca muestra nada, o a veces se abre y desaparece de inmediato.
Desde la Terminal, si escribo Terminal sh ~/Desktop/testterm
, funciona una vez, abriendo una Terminal con "yay! Terminal!" en él, pero luego los intentos posteriores producen terminales vacías.
test
ya que probablemente esté llamando al sistema/usr/bin/test
.Terminal
con otro comando, ¿se ejecuta correctamente?/bin/sh
. 2. Utilice una ruta relativa o absoluta para testterm. 3. Intente ejecutarTerminal testterm &
desde una terminal. Todos los emuladores de terminal con los que he trabajado requieren un interruptor antes del ejecutable (por ejemplo,xterm -e ./testterm
).Terminal
funcione asíxterm
, el archivo que está buscando es el shell que debe ejecutar. Si es así, puedo pensar en una solución alternativa. Intenta correrTerminal sh
, ¿se usa ensh
lugar debash
?Respuestas:
Un truco que podrías probar es el siguiente:
Cree un
bash
archivo .rc especial que genere subashrc
y ejecute su script. Vamos a llamarlo~/foo.rc
Crear un nuevo "cáscara" que llama
bash
con~/foo.rc
como su archivo .rc. Guarde este script comofake_shell
en algún lugar de su$PATH
(por ejemplo,~/config/bin
) y hágalo ejecutable:testterm
secuencia de comandos, inicieTerminal
usandofake_shell
como shell.El guión se convierte en:
fuente
bash-4.0#
en lugar de/>
(no importa) y al momento de cerrar la ventana, se dice,The process "bash" is still running. If you close the Terminal, the process will be killed.
(Terminales normalmente solo cerca Además, no es un gran problema..)PS1
variablefoo.rc
, la razón por la que es diferente es porque/etc/bash.bashrc
no se lee, por lo que también puede solucionar esto al obtenerlafoo.rc
. En cuanto al error, es porque está iniciando explícitamente/bin/bash
. Intenta iniciar en segundo plano (&
aunque dudo que funcione).&
hace que la Terminal vuelva a aparecer en blanco, aunque esa es la sintaxis correcta para los comandos asíncronos en Haiku. Gracias por la pista de PS1, lo buscaré. Por cierto, no sé por qué mi edición salió en busca gracioso ...