Confusão no comando konsole no linux

Confusão no comando konsole no linux

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 --nocloseo 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.

informação relacionada