Asterisk에 대한 스크립트를 작성하려고 합니다. 우리는 channspy를 많이 사용합니다. 때로는 소프트폰이 끊어지더라도 channspy는 계속 열려 있고 전화를 끊지 않습니다(이유는 모르겠습니다). 그래서 나는 열린 채널 수를 가져오고 3개의 열이 있는 파일 SIP/[extension]-channel
로 내보내고 첫 번째 열만 추출하는 스크립트를 만들고 싶습니다.TXT
awk ' {print $1} '
하지만 각 행에 1개의 채널이 있고 이 채널을 끊고 싶다면 이렇게 해야 하기 때문에 여기서 막히게 됩니다.
asterisk -rx 'soft hangup SIP/[exntesion]-channel'
누군가 각 줄을 변수로 만들고 마지막 줄까지 스크립트를 반복하도록 도와줄 수 있습니까? 그래서 명령은 다음과 같습니다
asterisk -rx 'soft hangup $variable'
답변1
system
awk와 함께 사용할 수도 있습니다 .
awk ' command = "asterisk -rx '\''soft hangup " $1 "'\''" { system(command); }' channels_file
테스트용:
awk ' command = "asterisk -rx '\''soft hangup " $1 "'\''" { print command; }' channels_file
답변2
cat 3-column-file-of-yours.txt | awk '{ sprintf "asterisk -rx \'soft hangup SIP/%s-channel\'\n",$1; }' | /bin/bash
문자열 작업에 어려움이 있는 경우 \' 근처의 슬래시 수를 사용하고 자유롭게 질문하세요!