Страница 1 из 1

Модернизировать скрипт

СообщениеДобавлено: 01 июл 2021, 16:56
lib_33
Привет.
Помогите пожалуйста разобраться со скриптом. Необходимо проверять в текстовом файле количество символов построчно!
И к примеру если строка равняется трем символам, то меняем канал в call файле на такой то, если не равно трем меняем на другой.

#!/bin/sh

while read number; do

cat <<EOF > /var/spool/asterisk/tmp/$number

Channel: SIP/0007/$number
Callerid: $number
MaxRetries: 2
RetryTime: 20
WaitTime: 30
Context: room402
Extension: confroom402
Priority: 1

EOF

chown root:root /var/spool/asterisk/tmp/$number
mv /var/spool/asterisk/tmp/* /var/spool/asterisk/outgoing

echo "$number"

number=`expr $number + 1`

while [ "$?" -eq "0" ]

do
count_files ()

{

if [ "$count_f" -eq "30" ]; then

sleep 10

return 0

else

return 1

fi

}

count_files

done

done < /var/spool/asterisk/calllist/call-list_test.txt

exit 0

Re: Модернизировать скрипт

СообщениеДобавлено: 02 июл 2021, 17:12
ded
Вы ошиблись форумом.

Re: Модернизировать скрипт

СообщениеДобавлено: 02 июл 2021, 17:38
lib_33
ded писал(а):Вы ошиблись форумом.

Решение
#!/bin/sh

while read number; do

cat <<EOF > /var/spool/asterisk/tmp/$number

Channel: SIP/0007/$number
Callerid: $number
RetryTime: 20
WaitTime: 30
Context: room401
Extension: confroom401
Priority: 1

EOF

if [[ ${#number} < 4 ]] ; then
CHANNEL="Channel: SIP\/cucm\/${number}"
sed -i "s/^Channel: .*/${CHANNEL}/g" /var/spool/asterisk/tmp/$number
fi


chown root:root /var/spool/asterisk/tmp/$number
mv /var/spool/asterisk/tmp/* /var/spool/asterisk/outgoing

echo "$number"

number=`expr $number + 1`

while [ "$?" -eq "0" ]

do
count_files ()

{

count_f=`ls /var/spool/asterisk/outgoing | wc -l`

if [ "$count_f" -eq "30" ]; then

sleep 10

return 0

else

return 1

fi

}

count_files

done

done < /var/spool/asterisk/calllist/call-list.txt

exit 0