카테고리 없음

[세게 때리다] 쉘은 텔넷 명령에 에코 된 데이터에 대해 "명령을 찾을 수 없음"오류를 표시합니다.

행복을전해요 2021. 2. 6. 06:26

이것이 당신의 문제입니다.

echo "find /data/backup/ -name rec20140202* -exec awk -F"|" '$23!=0 {print"|"$14"|"$23}' 

echo 인수를 큰 따옴표로 묶고 -F "|"에 큰 따옴표도 사용합니다. 그리고 심지어 awk 스크립트에서도. 그런 다음 쉘은 다음과 같은 4- 프로그램 파이프를 구성하려고합니다.

 echo "find /data/backup/ -name rec20140202* -exec awk -F" |
 " '$23!=0 {print"                                         |
  "$14"                                                     |
   "$23}' {} \; > remoteDay1.txt"
   

쉘의 이후 위치 매개 변수 $1 와는 $2비어있는, 당신은 당신이 설명대로 오류를 얻을. 큰 따옴표 안에 큰 따옴표를 넣으려면 이스케이프해야합니다.

echo \"foo\"

"foo"따옴표를 포함한 에코 . 작은 따옴표로 묶인 문자열로 작은 따옴표를 따옴표로 묶는 방법은 없습니다. 또한 $23쉘 확장 에서 을 숨기고 싶습니다 . 그들로 탈출 \$. 나는 사용하는 것이 좋습니다

echo "find ... -F\"|\" '\$23!=0 {print \"|\"\$14\"|\"\$23}' {} \;>remoteDay1.txt"


출처
https://stackoverflow.com/questions/22050170