SORU
25 EKİM 2012, PERŞEMBE


Tek satırda birden fazla linux komutları birleştirmek yürütmek

Tek satırda birden fazla linux komutları birleştirmek için dağıtım işlemi gerçekleştirmek için çalışıyorum. Örneğin

cd /my_folder
rm *.jar
svn co path to repo
mvn compile package install

CEVAP
25 EKİM 2012, PERŞEMBE


Eğer varsa bir önceki başarılı olursa sadece her komut çalıştırmak istiyorsanız, o zaman && operatörü kullanarak bunları birleştirin:

cd /my_folder && rm *.jar && svn co path to repo && mvn compile package install

Eğer komutlardan birini başarısız olursa, o zaman tüm diğer komutları takip idam olmayacak.

Eğer tüm komutları öncekilerin başarısız olsun ya da olmasın, idam etmek istiyorsanız, noktalı virgülle ayırın:

cd /my_folder; rm *.jar; svn co path to repo; mvn compile package install

Senin durumunda, bir sonraki komut yürütme önceki başarısına bağlı olduğu ilk vaka istediğini düşünüyorum.

Ayrıca bir komut dosyasındaki tüm komutları koymak ve bunun yerine çalıştırabilirsiniz:

#! /bin/sh
cd /my_folder \
&& rm *.jar \
&& svn co path to repo \
&& mvn compile package install

(Ters sonunda çizgi vardır önlemek için kabuğundan düşünme, bir sonraki satırı yeni bir komut; atlarsanız eğik gerekir yazmak için tüm komut tek bir satır.)

Bir dosyaya Kaydet, örneğin 12**, ve çalıştırılabilir yapın:

chmod  x myscript

Şimdi makinede diğer programlar gibi bir komut dosyası çalıştırabilirsiniz. Ama eğer yok yere içeri bir dizin listelenen PATH ortam değişkeni (örneğin /usr/local/bin veya bazı Linux dağıtımları ~/bin), o zaman belirlemek gerekir yola o senaryoyu. Eğer dizinde ise, yürütme:

./myscript

Komut dosyası komutları ilk örnekte komutları da aynı şekilde çalışır; bir sonraki komutu ise bir önceki başarılı olursa sadece yürütür. Tüm komutları koşulsuz yürütülmesi için, sadece kendi satırında her komut listesi:

#! /bin/sh
cd /my_folder
rm *.jar
svn co path to repo
mvn compile package install

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • michellefeng's channel

    michellefeng

    26 Kasım 2006
  • Perihelion

    Perihelion

    23 NİSAN 2008