LINUX.ORG.RU

История изменений

Исправление annerleen, (текущая версия) :

~ ➤  .bin/signal                                                                                                                                                                                                   
<txt><span foreground="#333">lifecell LTE ▂▃▁▁▁</span></txt>%        



#!/bin/bash

### config ###
MODEMNAME="Sierra Wireless"
SIGNAL="▂▃▅▆▉"
NOSIGNAL="▁▁▁▁▁"
ERROR='<txt><span foreground="#333">%s</span></txt>'
FORMAT='<txt><span foreground="#333">%s%s %s %.15s</span></txt>'


### go ###
MODEM=`mmcli -L|grep -iE "$MODEMNAME"|head -n1|awk '{ print $1 }'`
STATE=(`mmcli -K -m "$MODEM"|grep -E 'generic.state |generic.signal-quality.value|generic.access-technologies.value\[1\]|3gpp.operator-name|3gpp.registration-state'|awk '{ print $3 }'`) #state,tech,sign,operator,reg

### display ###
[ -z "$MODEM" ]                   && printf "$ERROR" "offline"       && exit 1
[ "${STATE[0]}" == "failed" ] 	  && printf "$ERROR" "offline"       && exit 2
[ "${STATE[0]}" == "disabled" ]   && printf "$ERROR" "airplane mode" && exit 2
[ "${STATE[0]}" == "searching" ]  && printf "$ERROR" "searching"     && exit 3
[ "${STATE[4]}" == "idle" ] 	  && printf "$ERROR" "no service"    && exit 3
[ "${STATE[2]}" == "--" ] 	  && printf "$ERROR" "no service"    && exit 3
printf "$FORMAT" "${STATE[3]}" "$(echo ${STATE[4]}|sed 's/roaming/⚠️/;s/home//')" "${STATE[1]^^}" "${SIGNAL:0:((STATE[2]/20+1))}""${NOSIGNAL}"


скриншут

//причесал заодно немного

Исправление annerleen, :

~ ➤  .bin/signal                                                                                                                                                                                                   
<txt><span foreground="#333">lifecell LTE ▂▃▁▁▁</span></txt>%        



#!/bin/bash

### config ###
MODEMNAME="Sierra Wireless"
SIGNAL="▂▃▅▆▉"
NOSIGNAL="▁▁▁▁▁"

### go ###
MODEM=`mmcli -L|grep -iE "$MODEMNAME"|head -n1|awk '{ print $1 }'`
STATE=(`mmcli -K -m "$MODEM"|grep -E 'generic.state |generic.signal-quality.value|generic.access-technologies.value\[1\]|3gpp.operator-name|3gpp.registration-state'|awk '{ print $3 }'`) #state,tech,sign,operator,reg

### display ###
print() { printf '

### errors ###
[ -z "$MODEM" ]                   && printf '<txt><span foreground="#333">%s</span></txt>' "offline"       && exit 1
[ "${STATE[0]}" == "failed" ] 	  && printf '<txt><span foreground="#333">%s</span></txt>' "offline"       && exit 2
[ "${STATE[0]}" == "disabled" ]   && printf '<txt><span foreground="#333">%s</span></txt>' "airplane mode" && exit 2
[ "${STATE[0]}" == "searching" ]  && printf '<txt><span foreground="#333">%s</span></txt>' "searching"     && exit 3	
[ "${STATE[4]}" == "idle" ] 	  && printf '<txt><span foreground="#333">%s</span></txt>' "no service"    && exit 3
[ "${STATE[2]}" == "--" ] 	  && printf '<txt><span foreground="#333">%s</span></txt>' "no service"    && exit 3

### display ###
printf '<txt><span foreground="#333">%s%s %s %.15s</span></txt>' "${STATE[3]}" "$(echo ${STATE[4]}|sed 's/roaming/⚠️/;s/home//')" "${STATE[1]^^}" "${SIGNAL:0:((STATE[2]/20+1))}""${NOSIGNAL}"



скриншут

Исправление annerleen, :

сойдёт?

~ ➤  .bin/signal                                                                                                                                                                                                   
<txt><span foreground="#333">lifecell LTE ▂▃▁▁▁</span></txt>%        



#!/bin/bash

### config ###
MODEMNAME="Sierra Wireless"
SIGNAL="▂▃▅▆▉"
NOSIGNAL="▁▁▁▁▁"

### go ###
MODEM=`mmcli -L|grep -iE "$MODEMNAME"|head -n1|awk '{ print $1 }'`
STATE=(`mmcli -K -m "$MODEM"|grep -E 'generic.state |generic.signal-quality.value|generic.access-technologies.value\[1\]|3gpp.operator-name|3gpp.registration-state'|awk '{ print $3 }'`) #state,tech,sign,operator,reg

### errors ###
[ -z "$MODEM" ] && printf "offline"     && exit 1
[ "${STATE[0]}" == "failed" ] 	         && printf '<txt><span foreground="#333">%s</span></txt>' "offline"       && exit 2
[ "${STATE[0]}" == "disabled" ] 	 && printf '<txt><span foreground="#333">%s</span></txt>' "airplane mode" && exit 2
[ "${STATE[0]}" == "searching" ] 	 && printf '<txt><span foreground="#333">%s</span></txt>' "searching"     && exit 3	
[ "${STATE[4]}" == "idle" ] 	 	 && printf '<txt><span foreground="#333">%s</span></txt>' "no service"    && exit 3
[ "${STATE[2]}" == "--" ] 	         && printf '<txt><span foreground="#333">%s</span></txt>' "no service"    && exit 3

### display ###
printf '<txt><span foreground="#333">%s%s %s %.15s</span></txt>' "${STATE[3]}" "$(echo ${STATE[4]}|sed 's/roaming/⚠️/;s/home//')" "${STATE[1]^^}" "${SIGNAL:0:((STATE[2]/20+1))}""${NOSIGNAL}"


скриншут

Исходная версия annerleen, :

~ ➤  .bin/signal                                                                                                                                                                                                   
<txt><span foreground="#333">lifecell LTE ▂▃▁▁▁</span></txt>%        



#!/bin/bash

### config ###
MODEMNAME="Sierra Wireless"
SIGNAL="▂▃▅▆▉"
NOSIGNAL="▁▁▁▁▁"

### go ###
MODEM=`mmcli -L|grep -iE "$MODEMNAME"|head -n1|awk '{ print $1 }'`
STATE=(`mmcli -K -m "$MODEM"|grep -E 'generic.state |generic.signal-quality.value|generic.access-technologies.value\[1\]|3gpp.operator-name|3gpp.registration-state'|awk '{ print $3 }'`) #state,tech,sign,operator,reg

### errors ###
[ -z "$MODEM" ] && printf "offline"     && exit 1
[ "${STATE[0]}" == "failed" ] 	         && printf '<txt><span foreground="#333">%s</span></txt>' "offline"       && exit 2
[ "${STATE[0]}" == "disabled" ] 	 && printf '<txt><span foreground="#333">%s</span></txt>' "airplane mode" && exit 2
[ "${STATE[0]}" == "searching" ] 	 && printf '<txt><span foreground="#333">%s</span></txt>' "searching"     && exit 3	
[ "${STATE[4]}" == "idle" ] 	 	 && printf '<txt><span foreground="#333">%s</span></txt>' "no service"    && exit 3
[ "${STATE[2]}" == "--" ] 	         && printf '<txt><span foreground="#333">%s</span></txt>' "no service"    && exit 3

### display ###
printf '<txt><span foreground="#333">%s%s %s %.15s</span></txt>' "${STATE[3]}" "$(echo ${STATE[4]}|sed 's/roaming/⚠️/;s/home//')" "${STATE[1]^^}" "${SIGNAL:0:((STATE[2]/20+1))}""${NOSIGNAL}"