A opção de linha de comando -e
konsole especifica um programa para ser executado na emulação de terminal recém-criada; normalmente, seria um shell (como /bin/bash
ou /bin/tcsh
), mas poderia ser qualquer programa de console. Pode ser qualquer executável; ele será executado com seu stdin, stdout e stderr redirecionados para o terminal emulado criado pelo konsole.
O que não pode ser uma linha que precisa ser interpretada pelo shell, já que esse não é o caminho para um executável.
No entanto, você pode passar argumentos para o executável. Você acabou de adicioná-los ao final da chamada do konsole. E shells - incluindo tcsh, que você parece estar usando, e bash - permitem que você especifique um único comando para executar usando a opção de linha de comando -c
. Então você poderia fazer isso:
konsole -e /bin/tcsh -c 'source /$MYTOOLS/env.csh && gedit && aliasApp'
(Não está claro para mim por que você deseja iniciar um emulador de terminal para executar gedit
, que é baseado em GUI. Mas talvez tenha sido apenas um exemplo.)
Esteja ciente de que o shell será finalizado assim que a sequência de caracteres da linha de comando fornecida for concluída e o konsole será encerrado quando o executável especificado for finalizado. Então, isso não terminará fornecendo um shell após a execução desses comandos.
Se você deseja criar um shell com um conjunto específico de procedimentos de inicialização, é necessário usar um mecanismo específico do shell para executar o script de inicialização. Para bash, por exemplo, você pode usar a opção de linha de comando --rcfile
para especificar um script de inicialização customizado; infelizmente, essa opção não é entendida pelo tcsh, então você precisaria fazer outra coisa (como passar o nome do arquivo em uma variável de ambiente e ter seu script de inicialização normal como fonte do arquivo se a variável de ambiente estiver configurada).