Terminal komutları için nasıl bir komut dosyası oluştururum?

93

Windows'ta cmd komutlarını içeren bir dosya yazabilirim (genellikle .cmd veya .bat dosyaları). Bu dosyaları tıkladığımda cmd.exe dosyasını açacak ve dosyayı içeren komutları çalıştıracaktır.

Bunu Ubuntu'da nasıl yapardım?

Bunun bir kopya olduğundan eminim, ancak cevabımı bulamıyorum.
Bu sorulara benzer, ancak şu soruya cevap vermiyorlar:

Sık kullanılan terminal komutlarını bir dosyada saklayın

Çalıştırmak için Ubuntu'da CMD.exe Emulator. cmd / .bat dosyası

    
sordu Seth 30.11.2012 03:56

3 cevap

124

İki yöntem var.

İlk önce, en yaygın olanı bir dosya yazmaktır, ilk satırın olduğundan emin olun

#!/bin/bash

Ardından dosyayı kaydedin. Sonraki işareti chmod +x file

kullanarak çalıştırılabilir.

Ardından tıklattığınızda (veya dosyayı terminalden çalıştırdığınızda) komutlar çalıştırılır. Sözleşmeyle, bu dosyalar genellikle uzantı içermez, ancak bunları .sh veya başka bir şekilde bitirebilirsiniz.

Birkaç not:

  • İlk satırın, dosyayı yorumlaması gereken programa giden bir yol olması koşuluyla, herhangi bir (ve başka bir deyişle) dosya Linux'ta yürütülebilir. Yaygın örnekler arasında /bin/python , /bin/sh , /bin/dash , ancak garip top işleri /bin/mysql gibi çalışır
  • Bash tam bir dildir. Pencerelerde cmd.exe'den çok daha karmaşıktır. İşlevleri, döngüleri, koşullarını, dizge işlemlerini vb. Destekleyen güçlü bir programlama diline sahiptir.
  • Sorun yaşarsanız bu dokümanlar yardımcı olabilir.
  • Dosyayı çalıştırılabilir yapmak istemiyorsanız, bunu bash argüman olarak ileterek çalıştırabilirsiniz: bash file/to/run.sh

Basit Bir Bash Örneği

#!/bin/bash  
echo "This is a shell script"  
ls -lah  
echo "I am done running ls"  
SOMEVAR='text stuff'  
echo "$SOMEVAR"

İkinci yöntem, script kullanarak komutları kaydetmektir. % Co_de% dosyasını çalıştırın, ardından sadece bir şeyler yapın. İşiniz bittiğinde, script yazın ve komut dosyası sizin yaptığınız tüm "şeyler" ile sizin için bir dosya oluşturacaktır. Bu daha az kullanılır ama makro gibi şeyler yapmak için oldukça iyi çalışır. Daha fazla bilgi için exit .

    
verilen cevap coteyr 30.11.2012 04:18
14

Windows toplu iş dosyalarına eşdeğer kabuk komut dosyalarıdır ve mükemmel bir başlangıç ​​kılavuzu Bash Komut Dosyası 'dır.

Çoğunlukla, komut satırına girebileceğiniz komutlar bir kabuk komut dosyasına yerleştirilebilir.

Windows toplu iş dosyalarından farklı olan birkaç şey:

  • Kabuk denilen farklı komut yorumlayıcıları vardır. Varsayılan, bash'tır, ancak ilgileniyorsanız, zsh, ksh, tire, perl, python vb. Gibi başkaları da vardır.

  • Bir kabuk komut dosyasını çalıştırmak için, dosyayı chmod +x <filename>

  • ile yapabileceğiniz yürütülebilir dosyayı yapmanız gerekir.
  • Ubuntu'da geçerli dizin program arama yolu değildir, bu yüzden ./<filename> dosyasını çalıştırmanız gerekir, <filename> değil

  • Değişken adları $<varname> , %<varname>% değil

  • Bir kabuk dosyasındaki komutlar, toplu iş dosyasında olduğu gibi varsayılan olarak yazdırılmaz.

  • Dosya adının uzantısı .sh veya (daha alışılmış) olabilir, uzantı kullanmanıza gerek yoktur. Ubuntu'ya hangi programı çalıştırmak için kullanacağını söyleyen #!/bin/bash dosyasını dosyanın ilk satırına koyun. dosya.

  • Yorumlar, # ile başlar, rem değil.

Bunun yardımcı olacağını ve eğlenceli bir şekilde yazmasını sağlayacağınızı umuyoruz!

    
verilen cevap iBelieve 30.11.2012 04:14
13

Bir kabuk komut dosyası kullanarak bir dosyaya yazmak mı istiyorsunuz? İşte birkaç yolu:

touch file

Bu yöntem basitçe bir dosya oluşturacaktır, ancak dosya zaten mevcutsa, değişiklik tarihini yalnızca bu komutu kullandığınız zaman değiştirir.

echo "text" > file

Bu yöntem, file içeriğinin text 'sinin üzerine yazılır. Bir dosyayı temizlemek isterseniz, bunu basitçe yapabilirsiniz:

echo "" > file

Birden fazla satır yazmak istediğinizi varsayalım ve binlerce echo komutunu kullanmak istemezsiniz, bu komutu kullanırsınız:

cat << EOF > file
test
test1
foo
bar
EOF

Bu, tek bir komutta birden çok satır yazmanıza olanak tanır. % Co_de% içeriği şu şekilde olurdu:

test
test1
foo
bar

Bir dosyaya eklemek istediğinizde, file değerini > olarak değiştirin.

Umarım bu yardımcı olur!

EDIT : Gördüğünüz gibi, dosyayı >> uzantısını (isteğe bağlı, ama iyi bir fikir) kullanarak ve daha sonra bir dosya yöneticisinde kullanarak, gedit dosyasına yazabilirsiniz. Dosyaya tıklayın, Özellikler -> İzinleri seçin ve .sh kontrol edin. Sonra üzerine çift tıklayabilirsiniz ve o zaman çalışacaktır :). Ayrıca, terminalde bunu yapmak isterseniz, bu komutu çalıştırılabilir hale getirmek için çalıştırabilirsiniz (size ait değilse Allow executing file as program 'yi önceden ekleyebilirsiniz):

chmod +x file

Çalıştırmak için:

./file
    
verilen cevap MiJyn 30.11.2012 04:00

Etiketlerdeki diğer soruları oku