전체 명령을 파일에 에코

전체 명령을 파일에 에코

다음 명령이 있습니다

echo “more PHONEBOOK.lst | awk '!/ NY /' | sort -k1 | sort -k4 | tee PHONENOTNY.LST” >> NOTNY.sh && chmod 0777 NOTNY.sh 

그러나 명령을 실행하고 NOTNY.sh의 내용을 보면 다음이 포함되어 있습니다.

“more PHONEBOOK.lst

그것은 포함해야

more PHONEBOOK.lst | awk '!/ NY /' | sort -k1 | sort -k4 | tee PHONENOTNY.LST

얻은 결과 대신 명령의 텍스트를 어떻게 복사합니까?

답변1

"스마트" 따옴표 대신 일반적인 "큰 따옴표"를 사용하십시오.

printf "%s\n" "more PHONEBOOK.lst | awk '!/ NY /' | sort -k1 | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh 

more또는 awk가 사용자가 지정한 파일을 읽기 때문에 awk에 대한 무의미한 호출을 저장하십시오 .

printf "%s\n" "awk '!/ NY /' PHONEBOOK.lst | sort -k1 | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh 

또는 두 번째 항목이 sort첫 번째 항목을 덮어쓰게 되므로 다음과 같이 하세요.

printf "%s\n" "awk '!/ NY /' PHONEBOOK.lst | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh 

관련 정보