У меня есть следующий скрипт (называемый ./script
), который я хочу запустить с $(./script)
, потому что результат должен установить некоторую переменную среды. Странно, что диалог zenity отображается дважды, прежде чем скрипт завершится, когда я запустил его в $()
, пока он отображается только один раз, если я запустил его как есть.Почему zenity выполняется дважды?
#!/bin/bash
export select=`zenity --list --column=select "option1" "option2"`
echo "export SELECTION_VAR=$select"
Может кто-нибудь объяснить, почему он выполняется дважды и как я могу избежать этого?
Запуск скрипта с 'eval $ (./script)' швов, чтобы сделать трюк, но в чем разница между 'eval $ (./script)' и '$ (./script)'? Оба варианта правильно задают переменную среды, но только в последнем случае дважды отображается диалог зенитности. –
'./Script' не позволит родителям' eval' 'export'. 'eval./script' описан [здесь] (http://askubuntu.com/questions/174721/is-eval-cat-filename-the-same-as-source-filename). '$ (./ script)' просто запускает ваш скрипт в подзаголовке; Тем не менее, я не вижу, чтобы он работал зенит дважды. –