11 Mayıs 2020 Pazartesi

bash kodlama - gömülü değişkenler 2

Giriş
Bazı değişken isimleri BASH_XYZ şeklinde isimlendirilmiş. Bunlar tamamen bash'e mahsus.

BASHPID değişkeni
Açıklaması şöyle
Expands to the process ID of the current bash process. This differs from $$ under certain circumstances, such as subshells that do not require bash to be re-initialized. Assignments to BASHPID have no effect. If BASHPID is unset, it loses its special properties, even if it is subsequently reset.
Örnek
Şöyle yaparız
printf '%s\n' "$BASHPID"
true | while true; do
    eval 'printf "%s\n" "$BASHPID"'
    break
done
BASH_SUBSHELL değişkeni
Açıklaması şöyle.
BASH_SUBSHELL
      Incremented by one within each subshell or subshell environment when the shell
      begins executing in that environment. The initial value is 0.
Örnek
Şöyle yaparız.
$ echo $BASH_SUBSHELL
0
$ (echo $BASH_SUBSHELL)
1
BASH_VERSINFO değişkeni
BASH_VERSINFO Değişkeni yazısına taşıdım.

SECONDS değişkeni
Açıklaması şöyle.
SECONDS
Each time this parameter is referenced, the number of seconds since shell invocation is returned.
Örnek
Şöyle yaparız
bash -c 'a=$SECONDS; sleep 5; b=$SECONDS; printf "%d seconds passed\n" "$((b-a))"'
Örnek
Bu değişkeni kendimiz değer atarsak beklenilen sonuç elde edilmez.Şu kod yanlış.
#!/bin/bash
SECONDS=5
i=1

while true
do
        echo "`date`: Loop $i"
        i=$(( $i+1 ))
        sleep $SECONDS
done

Hiç yorum yok:

Yorum Gönder