Você esqueceu de postar os dois scripts. Mas, dada a sua descrição, parece que você está configurando a variável dbusRef
em um script de shell e acessando-a em outro script. Isso não funciona porque cada shell tem seu próprio conjunto de variáveis. Você precisa passar a variável do script de chamada para o script chamado.
Uma maneira fácil de fazer isso é transformar a variável em uma variável de ambiente. Você faz isso com o export
embutido. No chamador:
export dbusRef="$(kdialog --progressbar "Press Cancel at Any time" 10)"
…
some_other_program_that_happens_to_also_be_a_shell_script
No script chamado:
PROGRESS='something or other'
qdbus "$dbusRef" Set "" value "$PROGRESS"
Como alternativa, em vez de usar export
, você pode usar qualquer método que desejar para passar as informações, como um argumento de linha de comando.
dbusRef="$(kdialog --progressbar "Press Cancel at Any time" 10)"
…
some_other_program_that_happens_to_also_be_a_shell_script argument1 argument2 "$dbusRef" argument4
e no script chamado:
PROGRESS='something or other'
qdbus "$3" Set "" value "$PROGRESS"