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
文字列操作に問題がある場合は、\ '近くのスラッシュ数を使用して自由に質問してください!