특정 echo 문이 수행하는 작업을 이해하려고 합니다.

특정 echo 문이 수행하는 작업을 이해하려고 합니다.

두 번째 echo 문이 정확히 무엇을 하는지 이해하려고 노력하고 있습니다(기존 스크립트입니다).

echo "Triggering report.. "
curl -s -X POST "http://aaa.bbb"
echo -e \ '\
'

-e백슬래시를 이스케이프 처리할 수 있다는 내용을 읽었습니다 . 그런데 왜 외부에 백슬래시가 있는지 모르겠고, 따옴표 안에 \n 대신 백슬래시만 있는 이유는 잘 모르겠습니다.

답변1

두 번째 명령은 echo다음과 같은 이식성 있는 명령과 동일합니다.

printf ' \\\n\n'

그러면 공백, 백슬래시 및 두 개의 줄 바꿈이 출력됩니다.

비교를 위해 이 echo명령은 이스케이프된 공백뿐만 아니라 리터럴 백슬래시 및 리터럴 개행 문자를 출력하여 이러한 문자를 출력합니다. 기본적으로 두 번째 개행 문자가 출력에 추가됩니다 echo. 초기 공백은 따옴표 붙은 문자열의 일부가 아니기 때문에 이스케이프해야 하며(그렇지 않으면 쉘이 명령을 단어로 분할하여 제거됨) 백슬래시는 작은 따옴표로 묶인 문자열에 있어야 합니다. 그렇지 않으면 이스케이프됩니다. 다음 문자를 정의합니다.

-e명령에 사용된 옵션은 여기서 아무 작업도 수행하지 않으며 제거할 수 있습니다.

echo(에서 ) bash에 대한 등가 공식 :

echo -e ' \\\n'
echo ' \
'
echo -n -e ' \\\n\n'
echo -n ' \

'

또한보십시오:

관련 정보