Giriş
printf her zaman echo komutuna tercih edilmeli
1. Unicode
Açıklaması şöyle. Unicode için \u veya \U ile başlayan karakterler kullanılır.
Şöyle yaparız. \U ile başlayan sayı 5 karakter.
2. Renkli Çıktı
Metin Rengi
256 renk kullanılabilir.
Örnek
Şöyle yaparız
8 renk kullanılabilir.
Örnek
Şöyle yaparız.
Örnek
Şöyle yaparız.
Dosyadan bir sayı okuyalım.
Açıklaması şöyle.
Şöyle yaparız.
Örnek
NULL ile biten string için şöyle yaparız.
%s'in kaç kere kullanıldığının önemi yok. Parametre sayısı kadar tekrar edebiliyor. Şöyle yaparız. Çıktı olarak şunu alırız
Açıklaması şöyle. Unicode için \u veya \U ile başlayan karakterler kullanılır.
Örnek\uHHHH
the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHH (one to four hex digits)\UHHHHHHHH
the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHHHHHH (one to eight hex digits)
Şöyle yaparız. \U ile başlayan sayı 5 karakter.
# printf "\u2660 \u1F0A1 \U1F0A1\n"
♠ Ἂ1 🂡
Metin Rengi
256 renk kullanılabilir.
Örnek
Şöyle yaparız
printf "\033[38;5;196mhello\n"
Arka Plan Rengi8 renk kullanılabilir.
Örnek
Şöyle yaparız.
printf "\033[41mhello\n"
3. Formatlama Seçenekleri
Açıklaması şöyle. Yani C dili gibidir.Arguments to non-string format specifiers are treated as C language constants, except that a leading plus or minus sign is allowed, and if the leading character is a single or double quote, the value is the ASCII value of the following character.
Tek veya çift tırnak içinde formatlanacak string formatlama seçenekleri ile belirtilir. Daha sonra da boşluk bırakılarak değişkenler verilir.
Örnek
Şöyle yaparız
$ var="Hello"
$ printf '%s\n' "$var"
Hello
%b seçeneği
Örnek
Şöyle yaparız
printf '%b\n' 'hello\nworld'
%d seçeneği
Şöyle yaparız.
$ printf %d\\n "'a'"
97
$ printf %d\\n "'0'"
48
$ printf %d\\n "'"$'\1'
1
ÖrnekDosyadan bir sayı okuyalım.
BN=$($cat Build.number)
3 basamaklı yazdırmak için şöyle yaparız.printf "%.3d\n" $((++BN)) > Build.number
%f seçeneğiAçıklaması şöyle.
ÖrnekThe floating-point formatting conversion specifications of printf() are not required because all arithmetic in the shell is integer arithmetic. The awk utility performs floating-point calculations and provides its own printf function. The bc utility can perform arbitrary-precision floating-point arithmetic, but does not provide extensive formatting capabilities. (This printf utility cannot really be used to format bc output; it does not support arbitrary precision.) Implementations are encouraged to support the floating-point conversions as an extension.
Şöyle yaparız.
printf "%.18f\n" 5.10
5.100000000000000000
%s seçeneğiÖrnek
NULL ile biten string için şöyle yaparız.
printf '%s\0' small*jpg
Örnek%s'in kaç kere kullanıldığının önemi yok. Parametre sayısı kadar tekrar edebiliyor. Şöyle yaparız. Çıktı olarak şunu alırız
$ printf "%s" a b
ab
Şöyle yaparız. Çıktı olarak şunu alırız$ printf "%s%s" a b
ab
Hiç yorum yok:
Yorum Gönder