Posso especificar um comando personalizado antes de iniciar a sessão de bash interativa? [duplicado]

3

Please note: Although this question is essentially the same as this linked question, I did not mark it as "solving my problem" because the answers provided there are not very satisfactory. The answer I accepted below is cleaner and simpler. Take a look!

Eu sei passar bash um comando personalizado para executar, por exemplo assim:

bash -c "/bin/echo hello"

Quando faço isso, bash executa o argumento -c e, em seguida, sai. Como posso obtê-lo para me dar um prompt interativo quando terminar? Adicionar -i não tem efeito. Eu não quero escrever os comandos personalizados em um arquivo que .bashrc sempre lê.

Eu tenho me contentado com bash -c "commands; exec bash -i" , mas não é o ideal, pois começa bash duas vezes. Existe uma maneira de obter o mesmo efeito ao iniciar bash apenas uma vez?

    
por alexis 15.11.2016 / 21:22

1 resposta

5

Você pode usar a opção --init-file como esta bash --init-file <(echo "echo hello") . Isso não irá originar seu arquivo .bashrc . Se você quiser que o arquivo .bashrc seja originado, adicione isso como bash --init-file <(echo ". ~/.bashrc; echo hello") . Ou você pode colocar todos os comandos que deseja executar em um arquivo e usar bash --init-file file_with_commands

    
por 15.11.2016 / 21:53

Tags