0
netcat을 사용하여 채팅용 sh 스크립트를 만들고 있습니다. 이것은 코드입니다 :넷캣 채팅 bash 스크립트 문제
#!/bin/bash
clear
echo
echo "-----------------------"
echo "| handShaker Chat 2.0 |"
echo "-----------------------"
echo
read -p 'Server or Client setUp? (s or c) > ' type
if [ $type == 's' ] || [ $type == 'S' ] || [ $type == 'server' ]
then
read -p 'Port (4321 Default) > ' port
if [ $port -gt 2000 ] && [ $port -lt 6500 ]
then
echo
echo "Started listening on port $port."
echo "Stream (Press ctrl + shift to end session) >"
echo
awk -W interactive '$0="Anonymous: "$0' | nc -l $port > /dev/null
else
echo "handShaker Error > The port $port is not a in the valid range (2000 ... 6500)."
fi
elif [ $type == 'c' ] || [ $type == 'C' ] || [ $type == 'client' ]
then
read -p 'Port (4321 Default) > ' port
if [ $port -gt 2000 ] && [ $port -lt 6500 ]
then
read -p 'Destination IP > ' ip
if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]
then
echo
echo "Started streaming $ip on port $port."
echo "Stream (Press ctrl + shift to end session) >"
echo
awk -W interactive '$0="Anonymous: "$0' | nc $ip $port > /dev/null
else
echo "handShaker Error > Invalid IP Address."
fi
else
echo "handShaker Error > The port $port is not a in the valid range (2000 ... 6500)."
fi
else
echo "handShaker Error > $type is not a valid keyword."
fi
그러나 나는 다음과 같은 문제가 다음 AWK의 -W 매개 변수가 존재하지 않는 것, 그리고 프로그램은 실제로 클라이언트를 실행 한 후 중지합니다. 저는 macOS 터미널을 사용하고 있습니다.
누군가이 버그를 수정하고 스크립트를 개선하는 데 도움을 줄 수 있습니까?
'awk'없이 스크립트가 실행됩니까? 잘못된 구문이 사용 된 것 같습니다. 당신이 그것을 밖으로 해보려고 했습니까? 'nc $ ip $ port'의 결과는 무엇입니까? 그냥'nc -l $ port>/dev/null'을 사용하여'awk' 부분없이 행을 수정할 수 있습니까? 나는 awk을 사용하여 감각을 보지 못했다 - – Inian
그것은 awk없이 완벽하게 작동한다. 나는 그 라인에 주석을 달고 nc -l $ port와 nc $ ip $ port를 대신 넣었다. 이제 awk을 사용하여 올바른 출력을 얻으려고합니다. – Cristian
'nc' 명령 출력에서'awk'가 필요한 출력은 무엇입니까? – Inian