Por que este comando inicia terminais infinitos e como fazê-lo funcionar?

0
#!/bin/bash
gnome-terminal --command='/home/user23/bin/n-youtube-dl "$1"'

Eu quero passar o argumento passado para este script para o outro script iniciado no terminal. Mas isso inicia terminais infinitos de gnomo.

Você pode explicar por que isso acontece e como fazer isso funcionar?

Eu estou correndo zsh tem meu shell principal, se isso importa, o terminal inicia o script em zsh, então eu acho.

Atualização:

#!/bin/bash
gnome-terminal --command='echo "WTF"'
read -p "Press [Enter] key"

Está apenas fechando o termo mais rápido, então eu posso ver o WTF. Não é suposto parar? O mesmo vale para substituir o WTF por $1 novamente, sem respawn.

    
por redanimalwar 13.04.2014 / 10:18

2 respostas

1

Para executar um comando em gnome-terminal e passar argumentos com segurança para ele, use a opção -x , pois isso evita que a linha seja analisada por dois shells.

#!/usr/bin/env bash
gnome-terminal -x youtube-dl "$@"
    
por geirha 13.04.2014 / 10:41
1
#!/bin/bash
gnome-terminal -x bash -c "cd ~/Downloads/youtube; youtube-dl \"$@\"; read -p \"Press [Enter] key\""

É assim que resolvi isso.

    
por redanimalwar 13.04.2014 / 11:42