Bash'te Bir Dosyaya Nasıl Yazılır

How Write File Bash



Bash komut dosyası ile çalışırken yaptığımız temel görevlerden biri dosyaları okumak ve yazmaktır. Bu kılavuzda, bash'ta dosyaların nasıl okunacağına ve nasıl düzenleneceğine odaklanacağız.

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 ekleyecek

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 şu adla bir metin dosyası oluşturun: test 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'ı etkinleştirmek iyi bir uygulamadır. Noclobber'ı ayarlamak, çı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 > | operatör yerine > :

$ echo Dosyadaki mevcut metnin üzerine yazma >| test dosyası.txt

Veya noclobber'ı basitçe devre dışı bırakabilirsiniz:

$ set + veya noclobber

Ancak bu komut, tüm dosyalardan korumayı kaldıracaktır.

Yukarıdaki çıktı, mevcut metnin üzerine yazıldığını gösteriyor. Şimdi, kullanalım >> Şebeke:

$ echo Mevcut metin dosyasına metin ekleme >> testfile.txt

dışarı attı Metni kullanarak biçimlendiremeyeceğiniz için kullanımı her zaman ideal değildir, bu nedenle aşağıdaki komutta gösterildiği gibi metni biçimlendirmek için yankı yerine printf kullanın:

$ printf Hoş Geldiniz Bu yeni bir metin dosyasıdır. > yenitestfile.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 vim

Komut dosyasını yazın:

#! /bin/bash
yankı Adınızı girin
adı oku
echo $isim > data_dir.txt
echo Yaşınızı girin
okuma yaşı
echo $yaş >> data_dir.txt
kedi data_dir.txt

NS kedi komut dosyaları oluşturmak ve düzenlemek için kullanılır. Düğmeye bastıktan sonra modu değiştirerek yukarıdaki komut dosyasını Vim'e kaydedin. ESC tuşuna basın ve ardından yazın : myscript.sh içinde . Terminali açın ve kodu çalıştırın:

Heredoc kullanarak bir dosya nasıl yazılır

Birden çok 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:

Emretmek<<[-] Delimiter
.
metin/komutlar
.

sınırlayıcı

Sınırlayıcı yerine herhangi bir dize kullanılabilir ve - ayrıca dosyadaki tüm sekme boşluklarını kaldırmak için kullanılabilir. Basit bir örnek kullanarak anlayalım:

#! /bin/bash

kedi<< 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ıyla kaydedin myscript.sh . 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 ad 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 metin | 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.txt metin dosyası2.txt metin dosyası3.txt

Yukarıdaki komut, mevcut değillerse üç dosya oluşturacak ve her birine metin yazacaktır.

Çözüm

Bu kılavuz, bir dosyaya örneklerle bash 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.