- Echo komutu çıktının sonunda new line gönderir printf göndermez
- tput cols –> terminal kaç sütun
$ tput cols
80
- tput lines –> terminal kaç satır
$ tput lines
41
Örneğin terminalde sağdan sola çizgi çekmek
Printf in 2 tip yazılım tipi vardır
$ printf “format\n” “arguments”
$ printf “format_with_modifiers\n” “arguments”
Formatlar
hemen bir örnek
$ x=5
$ y=7.6
$ printf "my_age=%d\n %f\n" "$x" "$y"
my_age=5
7.600000
Format with modifiers
“0” Padding
$ printf "%5d\n" "$x"
5
can@Monster ~
$ printf "%05d\n" "$x"
00005
Float format modification
Float sayılarda noktadan sonra kaç basamak göstereceğimizi belirleyebiliriz.
y=7.98
printf "%f\n" "$y"
7.980000
$ printf "%0.2f\n" "$y"
7.98 --> 0.2 means 2 digits after .
$ printf "%0.3f\n" "$y"
7.980 0.3 as above
2-3 karakterde problem olmaz ancak 20 karakter kullandığımızda sağa ve sola yaslama kuralı etkili olur ve default sağa yaslıdır.
$ printf "%20.10f\n" "$y"
7.6000000000
bunu sola yaslı yapmak istersek “-” koyarız.
$ printf "%-20.10f\n" "$y"
7.6000000000
enson küçük bir script ile bitirelim
#!/bin/bash
title="Kurulum asamalari"
Sutunlar=$(tput cols)
baslik_boyu=${#title}
span=$((($Sutunlar + $baslik_boyu) / 2))
printf "%${Sutunlar}s" " " | tr " " "*"
printf "%${span}s\n" "$title"
printf "%${Sutunlar}s" " " | tr " " "*"
Bu scriptin çıktısı