23/11/2021

Printf

  • 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ı

Leave a Reply