Вам, вероятно, придется использоватьeval
:
eval "sleep 5" "$BCKGRND"
eval
заставляет оболочку повторно -оценить переданные аргументы. Таким образом, литерал &
будет интерпретироваться как &
в конце команды, а не как аргумент команды, переводя команду в фоновый режим.
Я думаю, вы хотите разделить с помощью ;
вместо|
sleep 10; echo hi; sleep 5
Ожидание 10 секунд, эхо-привет, ожидание 5 секунд, затем выход.
Я думаю, что многие из нас не понимают, почему вы хотите передавать выходные данные sleep (, которые на самом деле не имеют никакого смысла ). По правде говоря, мысль о том, чтобы заснуть по трубе, хотя и возможна, мне никогда не приходила в голову.
;
— это синтаксис для последовательного запуска команд.