2011-08-25 14 views
29

Tengo un problema. Estoy buscando mucho tiempo para esta respuesta: ¿cómo puedo ejecutar el comando en el nuevo shell bash y permanecer en este NUEVO shell después de que se ejecute este comando? Así, por ejemplo:ejecute el comando bash en el nuevo shell y permanezca en el nuevo shell después de que se ejecute este comando

bash -c "export PS1='> ' && ls" 

hará nuevo shell, export PS1, lista de directorios y ... va a salir a mi shell actual. Quiero quedarme en el nuevo.

+1

nos puedes explicar lo que estamos tratando de lograr. Tal vez hay otra manera de hacerlo. – dimba

+0

@dimba No puedo hablar por danilo, pero en mi caso estoy tratando de entrar en mi servidor web, entrar en el directorio de la aplicación y abrir una consola de rieles para esa aplicación. –

+0

posible duplicación de [Invoke bash, ejecute comandos dentro de un nuevo shell, luego devuelva el control al usuario] (http://stackoverflow.com/questions/7120426/invoke-bash-run-commands-inside-new-shell-then- give-control-back-to-user) –

Respuesta

32

Se puede lograr algo similar por abusar la opción --rcfile:

bash --rcfile <(echo "export PS1='> ' && ls") 

De bash manpage:

archivo --rcfile

ejecutar comandos del archivo en lugar del sistema de amplia /etc/bash.bashrc archivo de inicialización y el archivo de inicio personal estándar ~/.bashrc si el shell es interactivo

+2

thx vm !! ¡y pude usar mi archivo '.bashrc' como base de esta manera! 'bash --rcfile <(echo" source "$ HOME/.bashrc"; export PS1 = '>' && ls ")' –

+0

Eso es lo que estoy buscando. ¡Gracias! –

-2

El perezoso:

bash -c "export PS1='> ' && ls; bash" 
+11

Esto inicia otro shell, pero no respeta el nuevo prompt. – Jack

Cuestiones relacionadas