bash echo - как обозначить конец команды
NL=$'\n'
CMD=""
CMD="$CMD echo Hello ; $NL"
CMD="$CMD echo World ; $NL"
$CMD
Приведенный выше код дает следующий вывод, echo
все после этого.
Hello ; echo World ;
Ни символ новой строки, ни точка с запятой здесь не работают. Что не так?
1 ответ
Чтобы включить интерпретацию обратной косой черты, необходимо добавить флаг -e в echo.
:/$ NL='\n'
Помещение перевода строки в переменную NL.
:/$ CMD=""
Установка CMD для пустой строки.
:/$ CMD="$CMD echo Hello ; $NL"
Сброс CMD, так как старый CMD "", тогда новый " echo Hello; \n"
:/$ CMD="$CMD echo World ; $NL"
Сброс CMD, так как старый CMD - " echo Hello; \n", тогда новый - "echo Hello; \ n echo World; \n"
:/$ echo -e $CMD
echo Hello ;
echo World ;