Eu estava tentando abrir um novo terminal konsole e um arquivo de origem depois de abri-lo. Eu tentei o seguinte comando:
konsole -T hello --noclose -e "source file"
Eu queria que o terminal permanecesse aberto após o fornecimento do arquivo, mas mesmo com --noclose
o novo konsole fechado. Como posso manter o konsole aberto
Responder1
Acho que você deseja uma sessão interativa após executar o arquivo de origem.
konsole usa chamadas system() ou popen() para executar o parâmetro -e. source é um bash embutido, então você não pode simplesmente chamá-lo.
É difícil dizer ao bash para iniciar comandos e depois iniciar uma sessão interativa. Existem opções --init-file e --rc-file mas elas serão usadas em vez de seus arquivos de configuração normais. Pode ser inconveniente.
Acho que este script de shell funcionará para você.
#!/usr/bin/env bash
source file
exec bash
Coloque-o no arquivo "script.sh", torne-o executável e execute-o dessa forma
# Edit script.sh
chmod +x script.sh
konsole -e ./script.sh
Eu acho que você definiu algumas variáveis em seu arquivo. Deve ser exportado se for usado em sessão interativa.
export VAR=value
Ou se você não precisa de sessão interativa você pode usar este script
#!/usr/bin/env bash
source file
echo "Press enter to exit"
read
Bem. Pode haver um bug no console também. Provavelmente deveríamos denunciá-lo.