Возможно ли иметь подстановку переменных во вложенном heredoc? - PullRequest
0 голосов
/ 03 мая 2018

У меня есть bash-скрипт такой структуры:

ssh user1@host <<EOF1
    var1="abc"
    echo \$var1

    su user2 <<EOF2
        var2="xyz"
        #echo var2 (how?)
        ..do something..
EOF2
EOF1  

Теперь я могу определять и получать доступ к переменным внутри внешнего heredoc EOF1, как показано. Возможно ли сделать то же самое внутри внутреннего heredoc EOF2?

Вот что я делаю в своем сценарии: Я выполняю команду внутри EOF2 как другой пользователь, получаю код завершения этой команды и сохраняю его в переменной для дальнейших проверок внутри блока EOF2. Но я застрял в сохранении кода выхода команды в переменную и доступ к нему позже. Любой другой способ сделать это также очень помог бы. Спасибо.

1 Ответ

0 голосов
/ 03 мая 2018

Да, просто добавьте обратную косую черту:

echo \\\$var2

, который преобразуется (в пределах внешнего heredoc) в:

echo \$var2

и, наконец, внутри внутреннего heredoc в:

echo $var2
...