2017-07-27 5 views
1

Ich habe einige Variablen in meinem Skript einchecken und mit "0" voranstellen, wenn es nur ein Zeichen gibt.Aggregierte Zuweisung einer Variablen und if-Anweisung

Dies ist mein Code:

count_dev_nn=`echo "${#dev_nn[@]}"` 
if [ ${#count_dev_nn} -eq 1 ]; then 
     count_dev_nn="0"${count_dev_nn} 
fi 

(genannt mehrmals für jede unterschiedliche Zählung _ * _ nn Variablen)

Gibt es eine Möglichkeit, dies auf einer Linie zu tun? Um zu vermeiden, die if-Anweisung für jede var zu wiederholen?

+0

Das 'echo' ist unnötig:' count_dev_nn = $ {# dev_nn [@]} '. – chepner

Antwort

3
printf -v count_dev_nn '%02d' "${#dev_nn[@]}" 

Verwenden printf '%02d' eine Zahl auf zwei Stellen aufzufüllen und printf -v das Ergebnis an einer anderen Variablen zuzuweisen. Keine if Anweisung erforderlich.

Wenn Sie dies ausdrucken möchten, könnten Sie auch nur die -v count_dev_nn loswerden.

Verwandte Themen