Estoy tratando de crear un script simple que, entre otras cosas, creará una subshell:
#!/bin/sh
# setup
"${@:-$SHELL}"
# teardown
La pregunta es: necesito cambiar la solicitud predeterminada, por ejemplo:
$ # shell predeterminado
$ ./myscript
(myscript) $ # subshell
(myscript) $ salida
$
Traté de cambiar PROMPT
y PS1
, pero ninguno de estos funciona. ¿Cómo puedo hacer eso?
PD .: Necesito una solución que funcione tanto en Bash como en ZSH, si es posible.
bash
solo para .Respuestas:
Creo que puede crear una subshell con un mensaje diferente como este:
Ejemplo
Env actual:
En sub shell:
Volver a la carcasa original:
fuente
here string
sustitución en lugar del proceso. por ej<<< "PS1..."
.La razón de que no funciona puede ser porque cuando se carga la cáscara (que debería ser, por ejemplo .:
/bin/bash
), que va a terminar la recarga de sus archivos de configuración, que incluyen las variables de entorno para el símbolo (por ejemplo .:$HOME/.bashrc
) después de haber sido aprobado el variables de entorno que desee, por lo tanto, sus variables se descartan.Es posible que desee verificar las opciones del shell para cargar archivos de configuración personalizados (por ejemplo:
--rcfile
en Bash IINM) y usarlos, así como también\env
para pasar las variables de entorno que desee. El problema es que una vez que lo haces, la subshell se vuelve dependiente de la shell.( EMPRESOR DE CAVEAT : Todavía no considero que esto sea una respuesta, en particular, todavía no he probado nada de esto en mi sistema).
fuente