spot_img
Friday, September 20, 2024
spot_img
HomeTechBilgi TeknolojisiBash kaynak yerleşik komutu

Bash kaynak yerleşik komutu

-

Bash kaynak yerleşik komutu

Unix benzeri işletim sistemlerinde kaynak, Bash kabuğunun yerleşik bir komutudur. Bir dosya adı alır ve o dosyadaki komutları komut satırına yazılmış gibi yürütür.

Açıklama

source, geçerli kabuktaki dosya dosya adından komutları okur ve yürütür. Dosya adı eğik çizgi içermiyorsa, dosya adı için PATH içindeki dizinler aranır.

Bash, POSIX modunda çalışmadığında (örneğin, set -o posix), dosya adı $PATH içinde bulunmazsa, geçerli dizin aranır.

Herhangi bir argüman sağlanırsa, dosya adı yürütüldüğünde konumsal parametreler haline gelirler.

Bir dosyadaki komutları yürütmek için kaynak kullanmak, bir komut dosyasını çalıştırmakla aynı şey değildir. Bir kere, dosyanın çalıştırılabilir olması gerekmez (örneğin, chmod u+x ile). Bir diğeri için, komutlar mevcut kabuk ortamında yürütülür; örneğin, herhangi bir değişken kümesi, kaynak yürütmeyi bitirdikten sonra değerlerini koruyacaktır.

Kaynağın yaygın bir kullanımı, $HOME/.bashrc gibi bir yapılandırma dosyasının içeriğini yüklemek ve yürütmektir. .bashrc dosyası, yeni bir bash kabuğu oluşturduğunuzda genellikle otomatik olarak yürütülür. Bu dosyada değişiklik yaparsanız ve bunları mevcut bash oturumunuza uygulamak istiyorsanız, bunu kaynak ile yapabilirsiniz. Aşağıdaki örneklere bakın.

Yerleşik komut . (tek nokta), kaynak komutla aynı eylemi gerçekleştirir. İkisi birbirinin yerine kullanılabilir.

Sözdizimi

source filename [argument ...]

Kaynak kelimesiyle aynı olan tek bir nokta (nokta) da kullanabilirsiniz. Örneğin:

. filename [argument ...]

Çıkış durumu

Kaynağın çıkış durumu, yürütülen son komutun çıkış durumudur veya hiçbir komut yürütülmezse sıfırdır. Dosya adı bulunamazsa veya okunamıyorsa, dönüş durumu sıfır değildir.

Örnekler

source ~/.bashrc

Ana dizindeki .bashrc dosyasını okuyun ve bu dosyadaki tüm komutları yürütün.

. ~/.bashrc

Yukarıdaki komutla aynı.

Sonraki örnekler, kaynağın geçerli kabuk bağlamında nasıl yürütüldüğünü gösterecektir:

printf 'myvar="Hello, World!"necho $myvarn' > ./mysource

Metni yazdırmak için yerleşik printf komutunu kullanın ve onu mysource.txt adlı yeni bir dosyaya yönlendirin. Yeni satır olarak yorumlanan n gibi çıkış karakterlerini yazdırmanın daha güvenilir bir yolu olduğundan, echo yerine printf komutu kullanılır. Tüm dize, çift tırnak yerine tek tırnak (‘) içine alınır, böylece bash ünlem işaretini bir geçmiş genişletmesi olarak genişletmez.

cat kullanarak mysource metnini doğrulayın:

cat mysource
myvar="Hello"
echo $myvar

Bu komutlar myvar değişkenini ayarlar ve ardından değeri yansıtır. mysource’u yürütülebilir yap:

chmod u+x mysource

Ardından, komut dosyasını çalıştırın. Geçerli dizin PATH ortam değişkeninizde değilse, komutun bir parçası olarak .\/(geçerli dizin) yol adını belirtmeniz gerekir:

./mysource
Hello, World!

mysource betiği, myvar değişkeninin bir değeri olduğu (“Hello, World!”) kendi kabuk ortamında yürütülür. Ancak betik sona erdikten sonra myvar’ın artık bir değeri kalmaz. Bunu, bash isteminde echo $myvar çalıştırarak doğrulayabilirsiniz:

echo $myvar

(myvar’ın değeri olmadığı için yalnızca yeni satır yazdırılır.)

Şimdi, betiği doğrudan çalıştırmak yerine, kaynak ile yürütün. myvar’ın değeri daha önce olduğu gibi yankılanır:

source ./mysource
Hello, World!

Ancak bu sefer myvar’ın mevcut ortamda hala bir değeri var:

echo $myvar
Hello, World!

Gördüğünüz gibi, bir komut dosyasını çalıştırmak, komut dosyası sona erdiğinde yok edilen yalıtılmış bir kabuk ortamı oluşturur. Buna karşılık, kaynak kullanmak, komut dosyasının içeriğinin mevcut ortamı etkilemesine izin verir. Farkın farkında olmak, komut dosyalarınızın davranışını ve bunların bash’ta çalıştırdığınız diğer komut dosyalarının ve programların ortamını nasıl etkileyebileceğini daha iyi anlamanıza yardımcı olur.

exec — Mevcut kabuğu yok edin ve yeni bir işlemle değiştirin.

Previous article
Next article

Related articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
0FollowersFollow
0SubscribersSubscribe
Saçınızda Kahve Kullanmanın Faydaları Nelerdir?

Latest posts