Telnet에 nc를 사용하는 Bash 스크립트는 ": 명령을 찾을 수 없습니다. OK"를 보고합니다.

Telnet에 nc를 사용하는 Bash 스크립트는 ": 명령을 찾을 수 없습니다. OK"를 보고합니다.

bash 프롬프트로 이동하여 다음 명령을 실행하면(memcached를 플러시하기 위해):

echo "flush_all" | /usr/bin/nc 172.16.198.130 11211

작동하고 "OK"를 반환합니다.

동일한 명령을 한 줄의 bash 스크립트에 넣으면 다음과 같습니다.

#!/bin/sh
`echo "flush_all" | /usr/bin/nc 172.16.198.130 11211`

다음과 같은 결과가 나타납니다.

: command not found OK

두 번째 명령으로 "OK"를 처리하려고 합니까? /dev/null로 리디렉션하는 것 외에 이를 방지하려면 어떻게 해야 합니까?

답변1

이: #!/bin/sh `echo bob` `echo jim`

터미널에서 이 작업을 수행한 것과 동일합니다.

# bob
bob: command not found
# jim
jim: command not found

백틱을 제거하세요.

답변2

명령 주위에 백틱을 사용하면 다음 출력을 수행하려고 합니다.
echo "flush_all" | /usr/bin/nc 172.16.198.130 11211
귀하의 경우에는 "ok"
주석에서 이미 언급한 대로 백틱을 제거하기만 하면 됩니다.

관련 정보