Como posso obter um script para se reiniciar em uma janela do Terminal se não foi iniciado em uma?
Com base nessa pergunta , tentei, em um arquivo chamado testterm
executável marcado:
#! /bin/sh
if [ -t 0 ]; # stdin
then
echo "yay! terminal!"
else
Terminal sh ~/Desktop/testterm
fi
... mas o Haiku Terminal
apenas abre e nunca mostra nada, ou às vezes abre e desaparece imediatamente.
No Terminal, se eu digitar Terminal sh ~/Desktop/testterm
, funciona uma vez, abrindo um Terminal com "yay! Terminal!" nele, mas tentativas subseqüentes produzem terminais vazios.
test
como você provavelmente está chamando do sistema/usr/bin/test
.Terminal
por outro comando, ele foi executado corretamente?/bin/sh
. 2. Use um caminho relativo ou absoluto para o testterm. 3. Tente executar aTerminal testterm &
partir de um terminal. Todos os emuladores de terminal com os quais trabalhei exigem uma opção antes do executável (por exemplo,xterm -e ./testterm
).Terminal
funcione comoxterm
, o arquivo que ele está procurando é o shell que ele deve executar. Nesse caso, posso pensar em uma solução alternativa. Tente executarTerminal sh
, ele usa emsh
vez debash
?Respostas:
Um truque que você pode tentar é o seguinte:
Crie um
bash
arquivo .rc especial que origine seubashrc
e execute seu script. Vamos chamá-lo~/foo.rc
Criar um novo "shell" que chama
bash
com~/foo.rc
que seu arquivo .rc. Salve este script comofake_shell
em algum lugar do seu$PATH
(por exemplo~/config/bin
) e torne-o executável:testterm
script, inicieTerminal
usandofake_shell
como shell.O script se torna:
fonte
bash-4.0#
vez de/>
(não importa) e quando você fecha a janela, ele diz:The process "bash" is still running. If you close the Terminal, the process will be killed.
(Os terminais normalmente fecham. Também não é grande coisa.)PS1
variávelfoo.rc
, a razão pela qual ela é diferente é porque/etc/bash.bashrc
não é lida, então você também pode corrigir isso utilizando a fontefoo.rc
. Quanto ao erro, é porque você está iniciando explicitamente/bin/bash
. Tente iniciar em segundo plano (&
embora eu duvide que funcione).&
faz com que o terminal aparece em branco novamente, apesar de que se a sintaxe correcta para comandos asyncronous em Haiku. Obrigado pela dica PS1, vou procurar isso. BTW não sei por que minha edição saiu de vista engraçado ...