SORU
27 ŞUBAT 2011, Pazar


Shell - Birden fazla komutu tek satırda

/templates/apple ve istediğim bir dosya var

  1. iki farklı yerde ve daha sonra koyun
  2. orijinal çıkarın.

, /templates/apple /templates/used /templates/inusekopyalanacak yani sonra orijinal kaldırmak istiyorum.

cp en iyi yolu bu, rm ardından bir ilgisi var mı? Yoksa daha iyi bir yolu var mı?

Bir şey gibi görüneceğini düşünüyorum yani bir satırda yapmak istiyorum:

cp /templates/apple /templates/used | cp /templates/apple /templates/inuse | rm /templates/apple

Bu doğru sözdizimi nedir?

CEVAP
27 ŞUBAT 2011, Pazar


| (boru) başka bir komut içine komut çıktısını yönlendirmek için kullanıyorsunuz. Sizin için ne arıyorsanız eğer önceki başarılı olursa sadece && sonraki komutu çalıştırmak için operatör

cp /templates/apple /templates/used && cp /templates/apple /templates/inuse && rm /templates/apple

Ya

cp /templates/apple /templates/used && mv /templates/apple /templates/inuse

(Non-etraflıca) bash özetlemek için komut işleçler/ayırıcı:

  • Bir tane standart giriş içine bir komut | borular (boru hatları) standart çıkış (stdout). stderr hala olursa olsun, varsayılan hedefine gider unutmayın.
  • |&başka bir standart içine girdi stdout ve bir komut stderr Her iki boru. Çok yararlı, bash mevcut sürüm 4 ve üstü.
  • && eğer bir önceki başarılı olursa sadece && sağ komut yürütür.
  • || || sadece sağ komut önceki başarısız yürütür.
  • ; önceki komut başarılı veya başarısız olursa olsun ; Her zaman sağ komut yürütür. set -e bash bir hata vermesine neden daha önce başlatıldığı, tabii.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • michaeljacksonVEVO

    michaeljacks

    2 EYLÜL 2009
  • Vortez

    Vortez

    27 Temmuz 2009