Ubuntu Türkiye

Yazılım => Programlama => Kabuk (sh,bash,*csh,ksh,zsh) => Konuyu başlatan: edge35 - 09 Mayıs 2017 - 13:58:35

Başlık: [Çözüldü] bash betiği ile bir dosya açma ve dosyanın en altına yazı ekleme
Gönderen: edge35 - 09 Mayıs 2017 - 13:58:35
Bash betiği ile istenilen dosyanın en altına ve ya istenilen yerine bir mein eklemek istiyorum. Bunu nasıl yapabilirim. Örneğin:

https://wiki.ubuntu-tr.net/index.php?title=Num_Lock%27un_a%C3%A7%C4%B1l%C4%B1%C5%9Fta_otomatik_a%C3%A7%C4%B1lmas%C4%B1n%C4%B1_sa%C4%9Flamak
Alıntı YapÖncelikle numlockx paketini kurunuz. Bu paketi Synaptic Paket Yöneticisi arayüzü üzerinden kurabileceğiniz gibi Uçbirim komut satırı ekranında alttaki komut yardımıyla da yükleyebilirsiniz.
    sudo apt-get install numlockx
    Ardından Uçbirim komut satırı ekranında alttaki komutu giriniz. Bu komutu girdiğinizde "lightdm.conf" isimli bir dosya, resimdeki gibi bir metin editöründe açılacaktır.
    gksudo gedit /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
    Açılan bu dosyada içeriğin altına alttaki kodu ekleyin.
    greeter-setup-script=/usr/bin/numlockx on
    Dosyayı kaydedip kapatın.
bu işlemi bir betik halinde nasıl yaparız.
Başlık: Ynt: bash betiği ile bir dosya açma ve dosyanın en altına yazı ekleme
Gönderen: mhmtkrktr - 09 Mayıs 2017 - 15:38:05
Ekleme yapılacak dosya için sudo gereksinimi varsa;
sudo bash -c 'echo "greeter-setup-script=/usr/bin/numlockx on" >>/usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf'
# veya
echo 'greeter-setup-script=/usr/bin/numlockx on' |sudo tee -a /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf

Normal kullanıcı izinleri yeterli olan bir dosya için;
echo 'greeter-setup-script=/usr/bin/numlockx on' >>$HOME/deneme1
# veya
echo 'greeter-setup-script=/usr/bin/numlockx on' | tee -a $HOME/deneme2


Warning : >> yerine > veya tee komutuna -a argümanı verilmezse dosya içeriği silinir ve yeni içerik eskinin üzerine yazılır.

Araya ekleme için, sed -i "ön_satır/a eklenecek kelime" /ekleme_yapılacak_dosya şeklinde kullanılabilir. Asıl soru bu değil sanırım, bunu örneklemiyorum.
Başlık: Ynt: bash betiği ile bir dosya açma ve dosyanın en altına yazı ekleme
Gönderen: edge35 - 09 Mayıs 2017 - 15:52:26
Anladığım kadarıyla >> dosyanın sonunu mu belirtiyor yani? Başka bir şeye gereksinim duymadan?
Başlık: Ynt: bash betiği ile bir dosya açma ve dosyanın en altına yazı ekleme
Gönderen: mhmtkrktr - 09 Mayıs 2017 - 16:04:51
Hayır. >> ifasesi içeriğin yazılmak istendiği alana yönlendirileceği anlamına geliyor.
"Dosyanın sonuna" bu tarz işlemlerin zaten varsayılanı. Yani sed örneğinde olduğu gibi farklı bir ifade ile belirtilmedikçe dosyanın son kısmına eklenir.
İlave olarak, eklenecek kelimenin altında veya üstünde boş satır isteniyorsa \n veya \v (vertical) ifadesi kullanılabilir.
Örn: dosya sonuna 3 satır boşluk bırak, kelimeyi ekle, sonra iki satır daha boşluk bırak.
echo -e '\n\n\ngreeter-setup-script=/usr/bin/numlockx on\n\n' >>$HOME/deneme1
echo 'greeter-setup-script=/usr/bin/numlockx offff' >>$HOME/deneme1
xdg-open $HOME/deneme1

Sonuç daha açıklayıcı olacaktır.

Düzeltme: xdg-open kullanımdan kaldırılmış. Onun yerine gio open getirilmiş. Fakat iki defa üst üste komut vermeden çalışmıyor. Onun yerine kullandığın metin editörü ile açarsın. Örn: gedit $HOME/deneme1
Başlık: Ynt: bash betiği ile bir dosya açma ve dosyanın en altına yazı ekleme
Gönderen: edge35 - 09 Mayıs 2017 - 17:30:32
Şimdi doğru anladım o zaman. Teşekkür ederim.