Como passar variáveis ao comando gnome-terminal

1

Estou tentando usar variáveis para construir o --command arg para gnome-terminal .

Meu script de shell é assim:

buildId="aa-bb-cc"
versionCode="123456"
daily="daily"

gnome-terminal -e 'sh -c "while true; do
        python acra.py $versionCode $buildId 0 $daily
        sleep 600 # 10 mins
    done"'

Mas quando eu executo este script, novo terminal aberto, mas ele não pode reconhecer essas variáveis, eu só recebo sys.argv = ['acra.py', '0'] dentro do meu script python, então eu acho que o cmd foi executado da seguinte forma:

python acra.py 0

Então, como posso usar uma variável neste caso?

    
por nhoxbypass 13.09.2018 / 04:58

1 resposta

2

Supondo que gnome-terminal se comporta como xterm :

gnome-terminal -e sh -c 'some commands here' sh "$variable1" "$variable2" "etc."

As strings no final da linha de comando estarão disponíveis dentro do script sh -c como $1 , $2 , $3 , etc. O primeiro argumento para o script, a string sh , será ser colocado em $0 e usado em mensagens de erro pelo shell.

No seu caso:

#!/bin/sh

buildId="aa-bb-cc"
versionCode="123456"
daily="daily"

gnome-terminal -e sh -c '
    while true; do
        python acra.py "$1" "$2" 0 "$3"
        sleep 600
    done' sh "$versionCode" "$buildId" "$daily"

Isso pressupõe que o script acra.py esteja disponível no diretório de trabalho atual.

    
por 13.09.2018 / 09:59