16 Aralık 2021 Perşembe

bash kodlama Positional Parameter için gömülü değişkenler

Giriş

Positional Parameter Salt Okunurdur
Açıklaması şöyle.
You can't assign to the positional parameters individually
$0 değişkeni - positional parameter
Örnek
Şöyle yaparız. Bize shell ismini gösterir. Mesela çıktı olarak "bash" yazar.
echo $0
Örnek - Yapmayın
Şöyle yaparız.  Mevcut shell için yeni bir shell daha başlatır.
$0
Açıklaması şöyle
As $0 contains the shell command that is running your shell script or interactive session; when you type $0 in a terminal, you are invoking the command name within the $0 argument variable.

When $0 contains bash; Typing $0 in the terminal, just runs bash. It then runs another bash within the scope of the first one, as a sub-shell.

As it runs another shell, it look like it did nothing, but started another shell session with same environment variables and settings. The shell prompt and current directory are exactly the same, so it look like nothing happened.

If you then try to close the terminal window, while a sub-shell has been invoked, it will tell you there are still background processes running.

What happens when you close the terminal window, is: It signals the first higher level shell Process ID to terminate, but this shell's PID know it has some child PID still attached, and just tells you about it.
$1 değişkeni - positional parameter
İki tane parametre alan basit bir metod için şöyle yaparız.
qh() {
  "$1" --help | grep -- "$2"
}
$9'dan sonra gelen değişkenler
$9'dan sonra gelen değişkenlere - örneğin 14. değişken olsun - $14 olarak erişemiyoruz. erişmek için ${X} şeklinde süslü parantez içine almak lazım. Açıklaması şöyle
The list of positional parameters can be as long as required and as current resource limits allows. This means that there may be well over 9 elements in the list. As you have already noticed, elements 10 and later may be accessed by adding braces around the number, as in ${12}.

Örnek
Elimizde şöyle bir script olsun. Bunu file isimli bir dosyaya kaydedelim
#! /bin/bash
echo $14
Daha sonra çalıştıralım. İstediğimiz 14 çıktısını alamayız
./file 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Doğru çıktıyı almak için şöyle yaparız
echo ${14}

Hiç yorum yok:

Yorum Gönder