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 ; 
Другие вопросы по тегам