Bash'de bir dosyayı okumanın ve yazmanın birden çok yolu vardır. En basit yol “>” ve “>>” operatörlerini kullanmaktır.
- “>” operatörü mevcut verilerin üzerine yazacaktır
- “>>” operatörü veri ekler
Yeniden yönlendirme operatörlerini kullanmanın genel biçimi şudur:
Veri > Dosya AdıVeri >> Dosya Adı
Bir dosyaya yazma prosedürünü bir örnekle anlayalım:
Yeniden yönlendirme operatörlerini kullanarak bir dosya nasıl yazılır
Yukarıda tartışıldığı gibi, bir dosyaya yazmanın basit ve anlaşılır yaklaşımı yeniden yönlendirme operatörlerini kullanmaktır. Örneğin, zaten var olan bir dosyanın metnini değiştirmek istiyorsanız, önce “ adlı bir metin dosyası oluşturuntest dosyası.Txt” ve içine herhangi bir şey yazın:
Metin dosyasını kaydedin.
Terminalde aşağıda belirtilen komutu yazın:
$ echo “Dosyadaki mevcut metnin üzerine yazma” > testfile.Txt
Aşırı sıkmak riskli olabilir; bu nedenle, "noclobber" özelliğini etkinleştirmek iyi bir uygulamadır. "Noclobber" ayarı, çıkmakta olan herhangi bir dosyanın üzerine yazılmasını engeller.
$ set -o noclobber$ echo “Dosyadaki mevcut metnin üzerine yazma” > testfile.Txt
Ancak “noclobber” ı atlamak istiyorsanız, o zaman “>|" yerine " operatörü>”:
$ echo “Dosyadaki mevcut metnin üzerine yazma” >| test dosyası.TxtVeya “noclobber”ı basitçe devre dışı bırakabilirsiniz:
$ set +o noclobber
Ancak bu komut, tüm dosyalardan korumayı kaldıracaktır.
Yukarıdaki çıktı, mevcut metnin üzerine yazıldığını gösteriyor. Şimdi, ">>" Şebeke:
$ echo “Mevcut metin dosyasına metin ekleme” >> testfile.Txt
“EkoMetni kullanarak biçimlendiremeyeceğiniz için ” kullanımı her zaman ideal değildir, bu nedenle metni aşağıdaki komutta gösterildiği gibi biçimlendirmek için “echo” yerine “printf” kullanın:
$ printf “Hoş Geldiniz \n Bu yeni bir metin dosyasıdır.” > en yeni dosya.Txt
Kavramı bir bash betiği örneği ile anlayalım. Terminalde “vim” yazarak Vim'i açın. Cihazınızda Vim düzenleyiciniz yoksa şunu kullanarak yükleyin:
$ sudo apt kurulum vimKomut dosyasını yazın:
#! /bin/bashecho “Adınızı giriniz”
adı oku
echo $isim > data_dir.Txt
echo “Yaşınızı giriniz”
okuma yaşı
echo $yaş >> data_dir.Txt
kedi data_dir.Txt
“kedi” komutu dosyaları oluşturmak ve düzenlemek için kullanılır. “ tuşuna bastıktan sonra modu değiştirerek yukarıdaki komut dosyasını Vim'e kaydedinEsc” tuşuna basın ve ardından “yazın:w benim yazım.ş”. Terminali açın ve kodu çalıştırın:
Heredoc kullanarak bir dosya nasıl yazılır
Birden fazla satır yazmak istiyorsanız, en kolay yöntem “Heredoc” kullanmaktır. Heredoc olarak da bilinen belge, çok amaçlı bir kod bloğudur. Heredoc'un sözdizimi şöyledir:
Komut <<[-] Delimiter.
metin/komutlar
.
sınırlayıcı
"Sınırlayıcı" yerine herhangi bir dize kullanılabilir ve dosyadaki sekme boşluklarını kaldırmak için "-" de kullanılabilir. Basit bir örnek kullanarak anlayalım:
#! /bin/bashkedi << TEXTFILE
Bu bir metin dosyasıdır.
Bu dosya heredoc kullanılarak oluşturulmuştur.
METİN DOSYASI
Yukarıdaki komut dosyası "cat" komutu, "TEXTFILE" adında bir metin dosyası oluşturur ve yeni oluşturulan dosyaya metin yazar. Şimdi dosyayı “adına göre kaydedinMyscript.ş”. Terminali başlatın ve betiği çalıştırın.
Tee komutunu kullanarak bir dosya nasıl yazılır
Dosya yazmanın başka bir yöntemi de “Tee” komutunu kullanmaktır. Bu komutu belirten isim olarak girdi alır ve bir dosyaya yazar ve aynı anda çıktıyı gösterir. Varsayılan olarak, "Tee" komutu mevcut verilerin üzerine yazacaktır.
$ echo “Bu bir metindir” | metin dosyası.Txt
Eklemek için -a kullanın:
$ echo “Bu başka bir metin” | tee -bir metin dosyası.Txt
Birden çok satır yazmak için şunu kullanın:
$ echo “Birden çok dosyaya metin ekleme” | metin dosyası1.metin dosyası2.metin dosyası3.Txt
Yukarıdaki komut, mevcut değilse üç dosya oluşturacak ve her birine metin yazacaktır.
Sonuç
Bu kılavuz, örneklerle bash'ta bir dosyaya yazmak için birden fazla yaklaşıma odaklanmaktadır. Bash komut dosyası oluşturmada, bir dosya yazmanın birden çok yolu vardır, ancak en basiti ">", ">>" yeniden yönlendirme operatörlerini kullanmaktır. Birden çok satır yazmak için “heredoc” kullanılabilir ve aynı verileri birden çok satıra yazmak istiyorsanız “tee” komutu oldukça kullanışlıdır.