[ 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 |
[ dendic @ 25.05.2015. 22:11 ] @
[ 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 Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|