Сценарий, который выполняется после выхода из режима гибернации?

Символ & запускает фоновый процесс. Фоновый процесс выполняется асинхронно в подоболочке. Переменные можно передавать из родительской оболочки в подчиненную оболочку, а не наоборот. Однако вы можете найти обходной путь, если вам действительно нужно значение, установленное в дочерней оболочке:

boolean=$(mktemp) && echo "false" >$boolean
{ sleep 5 && echo true >$boolean && echo "boolean is true now" ; } &
{ until [ "$(cat $boolean)" = "true" ] ; do sleep 1 && cat $boolean ; done ; } &&
echo "boolean is true now: $(cat $boolean)"

Это создает временный файл, содержимое которого является логическим значением. В цикле до этот файл проверяется до тех пор, пока он не станет истинным.

Примечание:

Я рекомендую сделать следующее в вашем скрипте (если возможно):

{ sleep 5 && echo "background process done" ; } &
wait
echo "continue in foregound."

wait ожидает завершения фонового процесса.

1
12.02.2018, 11:34
0 ответов

Теги

Похожие вопросы