[ dendic @ 25.05.2015. 22:11 ] @
Zna li mi ko pojasniti ovaj bash?
#!/bin/bash

ats() {
[ "$1" lt
256 ] || return 1
printf "\\$(printf '%03o' "$1")"
}

o=(13 01 13 5...13 10)

for i in ${o[*]}
do
ats $i
done
[ djoka_l @ 26.05.2015. 08:40 ] @
Nemam trenutno Linux, pa da probam napamet:

Prvo se definiše funkcija ats
Ova funkcija ispisuje ascii znak koji joj je poslat kao prvi parametar.

linija [ "$1" lt 256 ] || return 1
je logički izraz koji se računa na sledeći način:
ako je prvi parametar funkcije ats manji od 256, izraz u zagradama je tačan, pa pošto iza njega ide OR, izraz "return 1" se ne računa. Kada bi prvi parametar bio veći ili jednak 256, na toj liniji bi se izašlo iz funkcije ats

U programu se funkcija ats poziva za vrednosti parametra, redom, 13, 1, 13, 5, 6, 7, 8, 9, 10, 11, 12, 13, 10

pa je izlaz iz programa ispis na standardni izlaz sekvence:
\CR \SOH \CR \ENQ \ACK \BELL \BS \TAB \LF \VT \FF \CR \LF

ili, oktalno:

\015\001\015\005\006\007\010\011\012\013\014\015\012