19.11. Niestandardowe zachowanie instrukcji printf

Problem

Skrypt generuje wyniki w nieco inny sposób, niż się spodziewaliśmy. Rozważmy jako przykład poniższy skrypt i jego listing wynikowy:

$ bash dziwne.zachowanie
poprawne pakiety: 0
błędne pakiety: 6
utracone pakiety: 0
POPRAWNE=6 BŁĘDNE=0 UTRACONE=0

$ cat dziwne.zachowanie
#!/bin/bash -

bledne=6

printf "poprawne pakiety: %d\n" $poprawne
printf "błędne pakiety: %d\n" $bledne
printf "utracone pakiety: %d\n" $utracone
printf "POPRAWNE=%d BŁĘDNE=%d UTRACONE=%d\n" $poprawne $bledne $utracone

Dlaczego jako liczba poprawnych pakietów jest wyświetlana wartość 6, chociaż powinna ona odpowiadać liczbie błędnych pakietów?

Rozwiązanie

Należy przypisać zmiennym wartości początkowe lub w instrukcjach printf ...

Get Bash. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.