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 "$@"
#!/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.
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 "$@"
#!/bin/bash
gnome-terminal -x bash -c "cd ~/Downloads/youtube; youtube-dl \"$@\"; read -p \"Press [Enter] key\""
É assim que resolvi isso.