다음 명령이 있습니다
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