@ghostku

Как с помощью env подставить переменные окружения в которых есть пробелы?

Есть докер, В докере есть cron и известная проблема, когда при запуске скрипта cron'ом скрипт не получает переменные окружения установленные при запуске контейнера. Есть и решение при запуске контейнера сделать:
env /var/env.txt
а в crontab написать что-то типа
* * * * * root env - `cat /var/env.txt` myscript.sh

Но проблема в том, что в значении моих переменных есть проблемы и при загрузке их из файла env спотыкается об них и падает. Я пробовал сделать так:
* * * * * root env - "`cat /var/env.txt`" myscript.sh

пробовал пропускать через sed и ставить кавычки вначале и в конце каждой строчки в файле /var/env.txt - не помагает, как правильно экранировать эти чертовы пробелы.
Спасибо.

UPD Что я пробовал

test.sh

root@d5d6155fa06f:/# env | grep "VAR1"
VAR1=HA HA HA
root@d5d6155fa06f:/# env > /home/test/env.txt
root@d5d6155fa06f:/# cat /home/test/env.txt | grep "VAR1"
VAR1=HA HA HA
root@d5d6155fa06f:/# env -i "VAR1=HA HA HA" /home/test/test.sh
VAR1=HA HA HA
root@d5d6155fa06f:/# env -i `cat /home/test/env.txt` /home/test/test.sh
env: 1049: No such file or directory
root@d5d6155fa06f:/# exit
exit
gadmin@GPC:~$ docker run  -it -v /var/nod32:/var/www/html/nod32 ghostku/nod32 /bin/bash
root@bef86556528f:/# env | grep "VAR1"
VAR1=HA HA HA
root@bef86556528f:/# env > /home/test/
build.sh  tada.sh   test.sh
root@bef86556528f:/# env > /home/test/env.txt
root@bef86556528f:/# cat /home/test/env.txt | grep "VAR1"
VAR1=HA HA HA
root@bef86556528f:/# env -i "VAR1=HA HA HA" /home/test/test.sh
VAR1=HA HA HA
root@bef86556528f:/# env -i `cat /home/test/env.txt` /home/test/test.sh
<b>env: HA: No such file or directory</b>
root@bef86556528f:/# sed -e 's/^/"/g' -e 's/$/"/g' /home/test/env.txt > /home/test/env1.txt
root@bef86556528f:/# cat /home/test/env1.txt | grep "VAR1"
"VAR1=HA HA HA"
root@bef86556528f:/# env -i `cat /home/test/env1.txt` /home/test/test.sh
<b>env: HA: No such file or directory</b>
root@bef86556528f:/# sed -e 's/=/="/g' -e 's/$/"/g' /home/test/env.txt > /home/test/env2.txt
root@bef86556528f:/# cat /home/test/env2.txt | grep "VAR1"
VAR1="HA HA HA"
root@bef86556528f:/# env -i `cat /home/test/env2.txt` /home/test/test.sh
<b>env: HA: No such file or directory</b>
  • Вопрос задан
  • 660 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект