Bash: Çalıştırılabilir bir komut dosyası nasıl yapılır

Yavaş yavaş makaleler koymak istiyorum CümbüşPekala, size yavaş yavaş öğretecek, senaryo oluşturacak ve çok daha fazlasını yapacak kadar malzemem var, böylece günlük görevlerimiz otomatiktir, bu yüzden açıkçası bize çok zaman kazandıracak 😀

Şimdi size temel bilgileri, her zaman bilmeniz gerekenleri göstereceğim ve bu, eğitimlerin geri kalanı için bana yardımcı olacak 😉

.Sh komut dosyası nasıl yapılır?

Basit ... çok basit 😀

1. Bir terminal açın, içine aşağıdakini yazın ve [Girmek]:

cd $HOME && touch script.sh && chmod +x script.sh

Bu onlar için bir dosya oluşturmaya yetecek script.sh üzerine tr kişisel dosya.

2. Terminalde aşağıdakileri koyun:

cd $HOME && echo '#!/bin/bash' > script.sh && echo '# -*- ENCODING: UTF-8 -*-' >> script.sh

3. Hazır, senaryonuz hazır 😀

Açarsak, şöyle bir şeyimiz olacak:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-

İkinci satırdan sonra oradan talimatlar yazılır.

Örneğin, bize bir terminalde göstermenizi söyleyeceğiz «<° Linux en iyisidir»😀

Senaryoyu şu şekilde alacağız:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "<° Linux es lo mejor"
exit

.Sh komut dosyası nasıl çalıştırılır veya test edilir?

1. Komut dosyasının olduğu klasöre gitmeliyiz, önceki örnekte kişisel klasörümüz olacak, bu yüzden bir terminal açıyoruz, içine aşağıdakini yazıyoruz ve [Girmek]:

cd $HOME

2. Şimdi bunu bir nokta ve eğik çizgi (ardından) ve ardından komut dosyasının adını koyarak çalıştırıyoruz, yani:

./script.sh

Ve tombala, zaten bizde var 😀

Yap ve göreceksin ...

Şimdi önemli bir ayrıntı, sonunda her zaman "çıkış«

Ve şimdi, ekleyecek başka bir şey yok, sadece gelecekteki öğreticileri bekleyin, burada öğreneceksiniz darbe HAHA.

selamlar


Makalenin içeriği şu ilkelerimize uygundur editoryal etik. Bir hata bildirmek için tıklayın burada.

57 yorum, sizinkini bırakın

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak.

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Oscar dijo

    Teşekkürler arkadaşım, bir script.sh'in nasıl yapılacağını hep merak etmiştim, şimdi öğrenme zamanı, bir sonraki dersleri bekliyor olacağım.

    1.    KZKG ^ Gaara <"Linux dijo

      Hayır, bir zevk hehe 😀
      Göreceksiniz ... Yavaş yavaş Bash öğreticileri koyacağım, birinin heyecanlanıp heyecanlanmadığını, öğrenip öğrenmediğini ve hepimizin daha iyi HAHA olup olmadığını görmek için.

      selamlar

      1.    jose dijo

        Merhaba, Sıkıştığım ve bir konu için yapmam gereken bazı senaryolarda bana yardım edebilirsen yardımına ihtiyacım olacak, benimle iletişime geçmeyi çok isterim.
        Şimdiden çok teşekkür ederim

  2.   pardo dijo

    Ah ölümlü !! harika 😉

    1.    KZKG ^ Gaara <"Linux dijo

      Teşekkürler 😀
      Şikayetlerin veya önerilerin her zaman iyi karşılanacağını unutmayın 😉

  3.   dara dijo

    Yazıyı beğendim, ne zaman bir komut dosyası başlığına ihtiyacım olsa, yalnızca başlıkta "#! / Bin / bash" satırını bulmak için gezinmeye başladım (çok unutkanım). Şimdi bu katkı ile ek açıklama ekleyebilir ve sadece kopyalayıp yapıştırabilirim 😀

    1.    KZKG ^ Gaara <"Linux dijo

      Unutma ki / bash ve / sh… bu farklı haha, 2 günümü benim için olması gerektiği gibi çalışmayan bir senaryoyla savaşarak geçirdim ve bash yerine sh koymamdı

      Bize sorduğunuz herhangi bir sorunuz.
      selamlar

  4.   xfraniux dijo

    Jaajajajajaja ve bu en basitidir, ayrıca gedit veya herhangi bir düzenleyiciyi açıp kopyalayabilirsiniz:

    #!/bin/bash
    # -*- ENCODING: UTF-8 -*-
    echo “<° Linux es lo mejor”
    exit

    Ve sonra ona yürütme izinleri veriyoruz….

    çok güzel veri .. selamlar

    1.    KZKG ^ Gaara <"Linux dijo

      hehe evet, bu böyle yapılabilirdi, ama bilmiyorum ... İki satırı kopyalayıp yapıştırmanın daha kolay olacağını düşünmüştüm (aslında bir tane olabilir) ve işte bu, çalıştırma izinleri ve başlık ile komut dosyasını hazırlayın 😀

    2.    Bertholdous dijo

      Merhaba. Komut dosyaları her zaman bir .sh dosyası olarak kaydedilmeli mi?

      Windows'ta benzerleri .bat dosyaları olacaktır. Yazılarına gelince, biraz daha basit görünüyorlar.

  5.   Lucas Matthias dijo

    Çok iyi che

    1.    KZKG ^ Gaara <"Linux dijo

      Teşekkürler 😀

  6.   arthur molina dijo

    Bir sonraki gönderiyi ve şu an için not almayı dört gözle bekliyorum.

    1.    KZKG ^ Gaara <"Linux dijo

      😉
      Herhangi bir öneriniz, yapmamı istediğiniz senaryo veya başka bir şey? 😀

  7.   cesaret dijo

    Programlamayı bilmeyen bu mu? Kolay olmasına rağmen programlama

    1.    KZKG ^ Gaara <"Linux dijo

      HAHAHA hadi ... heyecanlı mısın? … Biraz Bash öğrenin, ne kadar harika olduğunu göreceksiniz, nasıl programlanacağını bilmenize gerek yok, ondan çok uzakta 😀

      Ne dersin?

      1.    cesaret dijo

        Yapacağım, bugün bunun için değilim

  8.   anonim dijo

    Aslında, komut dosyaları düzenli olarak oluşturulacaksa, görevin kendisi de aşağıdaki gibi bir komut dosyasıyla otomatik hale getirilebilir (yalnızca $ home / bin / klasörüne kopyalanır ve çalıştırma izinleri verilir)


    #!/bin/sh
    # nuevoscript
    if [ $# -eq 0]; then
    DEST=$HOME
    SNAME=script.sh
    elif [ $# -eq 1]; then
    DEST=.
    SNAME="$1"
    else
    echo "Parámetros incorrectos"
    exit -1
    fi
    echo -e '#!/bin/bash\n# -*- ENCODING: UTF-8 -*-' > "$DEST/$SNAME" && \
    chmod +x "$DEST/$SNAME"
    echo "Creado el script $DEST/$SNAME"
    exit 0

    Bu şekilde koşarsan yeni senaryo parametreler olmadan oluştur $ home / script.shama eğer çalışırsa yeni komut dosyası diğer komut dosyası, oluşturur ./otherscript

  9.   Ramses dijo

    Merhaba arkadaşım, bir sdcard için nasıl otomatik çalıştırma oluşturabileceğimi ve telefonum tarafından bu kadar android ile okunabileceğini ve çalıştırıldığında abd.exe artı bugreport> bugreport.txt komutunu başlattığımı bilmek istiyorum

    1.    KZKG ^ Gaara dijo

      Fikrim yok arkadaşım ... Hiç Android kullanmadım.

  10.   Neo61 dijo

    Teşekkürler Gaara, bazı senaryoların öğretilebileceği bir yer bulmak istedim, sanırım bir e-postada bundan bahsetmiştim, bu gerçekten öğrenmem gereken bir şey. Detaylandırdığınız adımları takip ettim ve her şey mükemmel ama çalışmıyor, şunu anlıyorum:

    ./script.sh: satır 5: Eşleşen bir `` »'aranırken beklenmeyen EOF
    ./script.sh: satır 9: sözdizimi hatası: dosyanın sonu beklenmiyordu

    Bana hatamın ne olduğunu açıkla

    1.    KZKG ^ Gaara dijo

      Benim hatam, WordPress bazı ayrıntıları değiştirir, gönderideki koda tekrar bakın ve betiğinize böyle koyun.
      Olan şu:

      "Asd"

      Aynı şey değil:
      "asd"

  11.   Neo61 dijo

    Anlamıyorum, hala aynı görüyorum. Değişim nerede? Bana daha iyi açıklar mısın? Şimdi çalıştırma verdiğinizde, bu satır çıktı:
    ./script.sh: satır 5: °: Dosya veya dizin mevcut değil

    1.    KZKG ^ Gaara dijo

      Çalıştırdığınız betiği bana iletin, kodu buraya koyun: http://paste.desdelinux.net
      Gönderiye tekrar bakın, Güncelle düğmesine tıklamayı unutmuşum 😀

  12.   Neo61 dijo

    Merhaba ortak:
    Conky 2010'unuz için yaptığınız conkyrc betiğine baktığımı söyleyeceğim ve evet, bu doğru, disk sembolü Poky adlı bir kaynağa ait ancak Ubuntu 12.04'teki libreOffice'de varsayılan olarak gelmiyor, iyi olurdu, bu kaynağa sahipseniz , bana nereden indirebileceğimi söyle (biraz zor, gerçekten), fark ettiğim bir şey, bu sembollerin harfleri konulduğunda ve yazı tipi sistemde bulunmadığında, o zaman sembolü değil, harfi koyuyor. Mantıklı, zaten her şeyin nasıl çalıştığına dair bir fikir ediniyorum, ancak daha iyi anlamak için bana bir şeyleri açıklayacak birine ihtiyacım var, yaptığım her şey tümdengelim yoluyla ve hiçbir programlama vermedim, çalıştığım şey bilgisayar bilimi değildi Ve ayrıca, başka bir zamandı, bir hobi olarak hesaplama yaptım ve iyi olan şey, onun dallarından birinde çalışıyorum, öğrendiğim her şey kendi kendime öğretildi, bu yüzden azar azar bile olsa, Bana yol göster. burada ayrıca benim conky'imin senaryosu ve anlamadığımı açıklayacağım:

    Bakın, başka bir HDD takmaya çalıştığımda, aynı sıcaklık değerini verdiği için hala aynı olanı alıyorum. Sistemdeki CPU özelliklerini anlamıyorum, Conky'ye koyduğunuz takvimi yerleştirmeye çalıştığımda (NULL) kalın çıkıyor, 2010 yılında tanias dağınık ve konklu çubuğu genişletiyor. Yapabileceğiniz tüm iyileştirmeleri görmek için bakın. Sahip olduğum genişliği ve takviminizin bu genişliğe uyum sağlaması ve size göstermeyen her şeyin ortaya çıkması hoşuma gidiyor, işte burada:

    http://paste.desdelinux.net/4552

    –Kodu yapıştırmamıza koyun, böylece yorumlar çok kapsamlı olmaz–

  13.   GONZALO dijo

    gerçek şu ki katkınız üzücü

  14.   Edgar dijo

    Merhaba, bu senaryo ile hayatımı kolaylaştırdınız. Programlamada yeni olduğum için bana bunu açıkladığınız bir e-posta gönderip gönderemeyeceğinizi bilmek istediğim için çok teşekkür ederim.
    teşekkürler

    1.    KZKG ^ Gaara dijo

      Merhaba,
      Daha iyisi, bu kod satırlarını tarif edememiş / açıklayamamışsam, neyi başka bir şekilde açıklamayı anlamadınız?

      Aynı şekilde, şüpheleriniz varsa her zaman forumumuzdan sorabilirsiniz: forum.desdelinux.net

      Selamlar 😀

  15.   Durdurmak dijo

    Güzel bir katkı ama tamamlayabilirsin ... Bir sai için senaryoya ihtiyacım var. Yani, Sai pilde olduğunu ve 20 dakikası olduğunu fark ettiğinde, bir cihaza bir sinyal gönderir ve bazı sunucuları kapatmak için komut dosyasını yürütmek zorundadır. Kendimi iyi açıklayıp açıklamadım bilmiyorum ... Valdria senaryonuzu «kapat - h» ekleyerek ??

    Teşekkürler!

  16.   İsa israil perales martinez dijo

    Şablon klasörüme eklenecek başka bir şey: B

  17.   edwar dijo

    Birisi bana yardım edebilir mi, ubuntu için bir komut dosyasına ihtiyacım var mı, krom tarayıcıyı kapatırsak, tekrar açın

    Şimdiden teşekkürler

  18.   edo dijo

    Sadece çalıştırarak bir dosyanın bilgilerinin üzerine başka bir metin yazacak bir betiğe ihtiyacım var, bunun nasıl olduğunu bilen var mı?

    1.    edo dijo

      Zaten yukarıda nasıl yapılacağını söylediklerini gördüm

  19.   Dario dijo

    Torunlarım için çok güzel.
    Binlerce kez teşekkürler. »Pek çok gencin olmasının yanı sıra, öğretmenlik yapmak… .harika olurdu.

  20.   Roman PC dijo

    Olması gerektiği gibi basit ve işlevsel.

    Paylaşım için teşekkürler.

    Selamlar.

  21.   Hernan Jaramillo dijo

    Yardımınız için teşekkürler. Yararlıydı, çok iyi bir açıklamaydı.

  22.   Vicen dijo

    Teşekkür ederim bana hizmet etti. Şerefe

  23.   oyuncu dijo

    Basit ve etkili. Yeniler için harika öğretici 🙂

  24.   luis carlos dijo

    Merhaba, senaryolar hakkında çok az şey biliyorum ve kavramları karıştırıp karıştırmadığımı bilmiyorum ama yapmaya çalıştığım şey şu web sayfasında:
    http://beginlinux.com/blog/2010/03/iptables-with-network-card-aliases/

    Mesele şu ki, bu kodun nasıl başlatılacağını veya bunun IPTABLES'ın yerini alıp almadığını gerçekten anlamıyorum. Ve olduğu gibi değiştirirse, işletim sistemi ile otomatik olarak başlasın.

    teşekkürler

  25.   Cris dijo

    Müthiş Gaara !!!

    Ödevini açıkladığın gibi yapmaya başladım ve işe yaradı !! Karanlığın içinden çıkmak için zaman ayırdığınız ve bilginizi cahillerle paylaştığınız için teşekkür ederiz.

    😉

  26.   Aslan burcu dijo

    Merhaba, bir kullanıcının oluşturduğu bir senaryo yapmak için herhangi bir sorum var, bana yardımcı olabilir misiniz?

  27.   giovani dijo

    merhaba .sh dosyasıyla bir sorum var
    bunun bir yolu var mı
    Doğru yapıp yapmadığımı öğrenmek için sizinle iletişime geçtim.

    #! / system / bin / sh
    mount -o remount, rw /
    mkdir /mnt/local/Android/data/org.xbmc.xbmc/files/.xbmc
    ln -s /mnt/local/Android/data/org.xbmc.xbmc/files/.xbmc /.xbmc
    mount -o remount, ro /

    , Terminalde manuel olarak çalıştırıyorum ve çalışıyorsa, ancak dosyanın çalışmasını istediğimde istemiyor.

  28.   louis dijo

    Bunu vivaolinux.com.br adresinde buldum, harika

    #! / Bin / bash

    Scriptler için Gera.sh - Gera cabeçalho'ya dayalıdır

    Yazan: Sandro Marcell P. Barbosa (Boa Vista - Roraima)

    E-mail: sandro_marcell@yahoo.com.br

    Slackware GNU / Linux 10.1.0

    Kullanım örneği: script_name my_script

    Uzantıyı, uygunluğu veya yorumlayıcıyı da belirtebilirsiniz.

    Ör.: O yorumlayıcı 'sh' için nome_script backup.sh

    veya yorumlayıcı 'tcl' için ve ayrıca gün için nome_script backup.tcl!

    Yapabileceğiniz tercümanı tanımlama (bir başkasının yerine!):

    ÇEVİRMEN = »#! / Bin / sh»

    Başlık içeriği (istediğiniz gibi değiştirin!):

    INFO = »##»
    CREATOR = »## Yazan:»
    EMAIL = »## E-posta: you@correo.com»
    DISTRO = »##»

    Kullanıcının komut dosyası adını belirtip belirtmediğini kontrol etme:

    eğer [$ # -eq 0]; sonra
    echo ">>> Kullanım: $ (taban adı $ 0)"
    çıkış
    fi
    eğer [$ # -ge 2]; sonra
    echo "Boşluklu adlar geçerli değil!"
    çıkış
    fi

    Kullanıcı mevcut dizine yazabilir mi?

    Eğer [! -w $ PWD]; sonra
    echo "Mevcut dizini yazma izniniz yok!"
    çıkış
    fi

    Geçerli dizinde aynı ada sahip başka bir komut dosyası varsa ne olur?

    eğer [-f 1 $]; sonra
    echo "Aynı isimde bir betik zaten bu dizinde var!"
    çıkış
    fi

    Komut dosyası gövdesi:

    (
    kedi << END
    ÇEVİRMEN

    $ INFO
    $ CREATOR
    $ EMAIL
    $ DISTRO

    Şimdi sonraki satırlara komut ekleyin =)

    Bu komut dosyasının oluşturulma tarihi: $ (tarih «+% a% d /% m /% Y»), $ (tarih «+% T»)

    FIN
    )> 1 $

    Yürütme izninin ayarlanması:

    eğer [-f 1 $]; sonra
    chmod + x $ 1 2> / dev / stdout
    echo "$ 1 komut dosyası oluşturuldu ve yürütülmesine izin verildi!"
    fi

    Bu komut dosyasının oluşturulma tarihi: 29/01/2013 19:45:00

    1.    debianistrowler dijo

      Harika, mükemmel çalışıyor !!!

  29.   Vicente dijo

    Çok iyi öğretici, basit ve bana çok yardımcı oldu, teşekkürler

  30.   calichi dijo

    Sevgili KZKG Acemiyim ama öğrenmekle ilgileniyorum.
    Başka bir senaryon var. Ya da çalıştığım yerde aniden derlenmiş olanı açmak istiyorum ve göremiyorum.
    Herhangi bir fikir.

  31.   calichi dijo

    Bir senaryo için yardıma ihtiyacım var. Derlendi.

  32.   cool9 dijo

    Bash'ı anladım, ancak otomatik bir takma ad yapmak istersem ortaya çıkmıyor

  33.   Angiesarita dijo

    Yardım arkadaşın için çok teşekkür ederim.

    Bana büyük bir iyilik yapıp yapamayacağınızı bilmek istiyorum, belirli bir zamanda .sum oluşturmama yardımcı olacak bir komut dosyası oluşturmam gerekiyor, ancak onu nasıl parametrelendireceğimi bilmiyorum. Bana bazı önerilerde yardımcı olabilirsin. Teşekkürler ve bana yardım edebilirseniz dikkatli olacağım.

    selamlar

  34.   José dijo

    Merhaba, iyi günler, bak, lex'te bir iş yapıyorum, bu yüzden bana lex dosyasını çalıştırabileceğim, lex (lex.yy.c) ve veri giriş dosyasını oluşturan bir Komut Dosyası konusunda yardım edebilir misin? .

    Çok teşekkür ederim

  35.   Wilmer Ron dijo

    su teresi teşekkürler doktor !!! Senaryoda yeniyim, çok teşekkür ederim selamlar, yeni dersiniz için tetikte olacağım !!!!

  36.   Karen vega dijo

    Merhaba !!!

    Katkılarınız için çok teşekkür ederim, unix'e girmeye başlıyorum ve nadiren bu kod evrenini bu kadar basit bir şekilde açıklamaya başladım. Prosedürünüzle aynı yolda yaşayan n sayıda dosyayı bulmama yardımcı olacak ve bunları başka bir klasöre kopyalayacağım bir komut dosyası oluşturup oluşturamayacağımı sormak isterim ... birisi bana yol ve adını txt'de saklayabileceğimi söyledi. dosyalarım, ancak nasıl yapılacağı bana açık değil. Dikkatli kalıyorum.

    Selamlar!

  37.   Eibar Amaya dijo

    Merhaba bir VPS'im var ancak kendimden bazı konularda yardıma ihtiyacım var.Bir komut dosyası veya başka bir şeyin nasıl oluşturulacağıyla ilgileniyorum, böylece / kök klasörümdeki her şeyin kendi kendine yedeğini çalıştırıyorum ve bu yedeklemenin her 1 saatte bir çalışması Bunda yardımcı olur musun, çok minnettar olurum

    Bana yardım etmek istiyorsan çok yardıma ihtiyacım var 🙂

  38.   Jorge Rodriguez dijo

    şirketteki belirli ağ ekipmanlarına ping atmak ve izlemek için bir tane oluştur
    ama ben basitleştirdim

    red.sh && chmod + x red.sh'ye dokunun
    '# attı -- KODLAMA: UTF-8 -- '>> red.sh
    echo 'ping 10.50.0.125 -w 5' >> red.sh
    echo 'ping 10.50.0.80 -w 5' >> red.sh

    çalıştırın ./red.sh ve iyi

  39.   Fatura dijo

    Sevgili, otomatik bir kurulum betiği oluşturmam gerekiyor. İyi yapılmış bir iş için para ödemeye hazırım. İlgilenenler, bana bir e-posta gönder carranzalh@gmail.com. Gracias

  40.   sari dijo

    onlar benim horoz XD emiyor

  41.   hdexz dijo

    Günaydın arkadaş, bana bir konuda yardım edebilir misin
    Virüsler yakalanmasın diye firmanın linux'u ile yedekleme yapmam gerekiyor ama nasıl yapacağımı bilmiyorum
    Dosyaları paketleyecek ve bir ftp'ye gönderecek bir komut dosyası oluşturmam gerekiyor

    E-postama şimdiden yazmayı çok isterim

    cesarloscor@gmail.com