Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ### calculate signal ###
- function calculate_signal()
- {
- # measurement #
- signal=$1
- [ x$signal == x0 ] && echo -n $NOSIGNAL && return
- # lvl #
- #printf "%.15s" "${SIGNAL:0:(signal/20+1)}${NOSIGNAL}"
- printf "%.15s" "${SIGNAL:0:((signal-10)/20+1)}${NOSIGNAL}"
- }
- ### config ###
- SIGNAL="▂▃▅▆▉"
- NOSIGNAL="▁▁▁▁▁"
- MODEMNAME=ModemManager
- MODEM=$( mmcli -L|grep -iE $MODEMNAME|grep -oE 'Modem/[0-9]{1,3}'|cut -d'/' -f2 )
- IFS=$'\n'
- INFO=( `mmcli -m $MODEM|grep -E 'operator\ name|signal|access\ tech|state|registration'|cut -d\' -f2 | cut -d, -f1` )
- LEVEL=$(calculate_signal ${INFO[3]}) # signal level
- ROAM=$(mmcli -m $MODEM|grep -q \'roam && echo -n '✦')
- #echo ${INFO[@]}
- ### display ###
- [ -z "$MODEM" ] && echo -n "offline" && exit 1
- [ "x${INFO[0]}" == "xdisabled" ] && echo -n "airplane mode" && exit 2
- [ "x${INFO[0]}" == "xfailed" ] && echo -n "no sim" && exit 2
- [ "x${INFO[5]}" == "xsearching" ] && echo -n "no service" && exit 3
- [ "x${INFO[5]}" == "xidle" ] && echo -n "no service" && exit 3
- [ "x${INFO[5]}" == "xunknown" ] && echo -n "no service" && exit 3
- echo -n "${INFO[4]}${ROAM} " # provider name
- echo -n "${INFO[2]} " | tr [:lower:] [:upper:] | sed 's/\-PLUS/+/g' # technology
- echo -n "$LEVEL" # signal
Advertisement
Add Comment
Please, Sign In to add comment