por que o xterm não funciona com o meu script?

0

meu script: echo 123456 > /folder/folder/123.txt

Eu executei o script com xterm: xterm -e my.sh &

Não funciona.

    
por phong 29.04.2016 / 09:19

2 respostas

1

Há um grande problema e possivelmente um pequeno problema com sua chamada xterm. Primeiro - você não quer o & para embasar o script - é muito provável que ele faça exatamente o que você pediu e execute em segundo plano (efetivamente invisível - você pode vê-lo com ps ou jobs no shell em que você o iniciou; ps -A de qualquer lugar, etc. .).

Minha leitura da sua situação é que você está tentando gerar uma nova instância xterm e ter este script executado nela; e não fará isso em segundo plano (pelo menos visivelmente).

Em segundo lugar, você deve fornecer o caminho completo para my_script.sh, usar seu caminho completo e incluir o argumento no sinalizador -e inteiramente entre aspas, por exemplo, "/home/you/my_script.sh"

Isso pode não estar causando um problema aqui; Eu não sou positivo. Isso causará um problema em algum momento se você escrever scripts semelhantes no futuro, já que sem aspas você pode ser vítima de uma expansão inadvertida do bash.

Última nota - ao chamar um script bash de um shell bash, o #! / bin / bash é completamente desnecessário. É um bom hábito, e isso faz com que seja mais portátil - alguém vai pular sobre isso e dizer '#! / Usr / bin / env bash é mais portátil', e sim, é. Mas você não precisa que isso funcione, presumindo que você chame o script do bash (mas você deve sempre ter isso de qualquer maneira).

    
por 29.04.2016 / 10:51
0

Certifique-se de que o seu script comece com um shebang na forma:

#!/bin/bash #(or #!/bin/sh for POSIX compliance)

Em seguida, verifique se você executou o script executando:

$ chmod +x my_script.sh

Por fim, tente executar seu script:

$ ./my_script.sh

Tenha em mente que o xterm é um emulador de terminal gráfico que não é o próprio Bash.

    
por 29.04.2016 / 09:33