пытаясь выполнить небольшой скрипт из переменной, каков правильный синтаксис? - PullRequest
0 голосов
/ 24 мая 2019

это не работает

X="bash -c 'for I in \$(seq 1 3); do sleep 1; echo \$I; done'"
$X

Я понял

I: -c: строка 0: неожиданный EOF при поиске соответствия `'' I: -c:

строка 1: синтаксическая ошибка: неожиданный конец файла

но X выглядит как файл.

echo $X

bash -c 'для I в $ (seq 1 3); спать 1; echo $ I; сделано '

и если я скопирую и вставлю эту строку в приглашение bash, она будет работать как положено.

Моя цель - передать короткий специальный сценарий в более крупный сценарий, который в какой-то момент запускает его.

Если есть лучший способ передать и выполнить буквальный текст сценария, я бы хотел его изучить.

1 Ответ

0 голосов
/ 24 мая 2019

попробовать:

X="bash -c 'for I in \$(seq 1 3); do sleep 1; echo \$I; done'"
eval $X
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...