我有一個腳本,用於爲安裝的IP電話創建配置文件。現在我手動輸入分機號碼和手機密碼,然後輸入MAC地址,以便輸出文件可以正確創建。這工作得很好。以下是我迄今爲止:如何讀取文件,提取字段並將它們用於bash腳本中的變量
#!/bin/bash
echo "Enter the Extension #:"
read extension
echo "Enter the phone MAC Address:
read mac
echo " Extension Password:"
read password
cat >/tftpboot/$mac.cfg << EOF
#!version:1.0.0.1
account.1.label = $extension
account.1.display_name = $extension
account.1.auth_name = $extension
account.1.user_name = $extension
account.1.password = $password
account.1.sip_server.1.address = 10.1.10.250
account.1.sip_server.1.port = 5060
account.1.voice_mail_number= *97
account.1.subscribe_mwi = 1
local_time.time_zone = -4
local_time.ntp_server1 = 10.1.10.250
network.qos.rtptos = 46
network.qos.signaltos = 46
network.port.max_rtpport = 20000
network.port.min_rtpport = 10000
EOF
echo " All Done!"
我將有一個將所有與該腳本運行在服務器上的祕密擴展的文件。以下是該文件的示例:
[100]
deny=0.0.0.0/0.0.0.0
secret=60770f7d87b72dd451dbfd2dd8143b2b
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
trustrpid=yes
sendrpid=pai
type=friend
nat=yes
port=5060
qualify=yes
qualifyfreq=60
transport=udp
encryption=no
callgroup=
pickupgroup=
dial=SIP/100
[email protected]
permit=0.0.0.0/0.0.0.0
callerid=100 <100>
callcounter=yes
faxdetect=no
cc_monitor_policy=generic
[101]
deny=0.0.0.0/0.0.0.0
secret=7c2166c495ccbb637ae43e63c47de435
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
trustrpid=yes
sendrpid=pai
type=friend
nat=yes
port=5060
qualify=yes
qualifyfreq=60
transport=udp
encryption=no
callgroup=
pickupgroup=
dial=SIP/101
[email protected]
permit=0.0.0.0/0.0.0.0
callerid=101 <101>
callcounter=yes
faxdetect=no
cc_monitor_policy=generic
分機號碼位於方括號[100]中,祕密位於下方兩行。可能有100個擴展或更多。理想情況下,我想運行腳本,並使用條形碼掃描器掃描每個手機的MAC地址。
感謝您的任何幫助。
感謝您的回覆。我在我的文件上運行了第一條命令,我得到了祕密但沒有擴展名。 –
@EdLentz您使用哪種發行版? awk --version的輸出是什麼?該命令適用於我的發行版(Ubuntu Mate)和GNU awk 4.1.3。 – nautical
我正試圖在Raspian Jesse的樹莓派上開發這個。版本命令不起作用。我轉移到了我也在使用的Centos 6系統,並且awk可以工作。版本3.1.7我得到了擴展和祕密。現在將這個While集成到我的腳本中。謝謝 –