Mac OS X'te terminaldeki komutları birleştirme


12

Aşağıdakileri terminaldeki bir satıra yazmak istiyorum veya bir dosya oluşturup izinleri ayarlamak için daha kısa bir yol varsa, lütfen yorum yapın.

sudo touch .htaccess
sudo chmod 766 .htaccess

Çok takdir

Yanıtlar:


21

'& Amp; & amp;' ilki başarılı olursa, koşullu olarak ikinci komutu çalıştırmak için.

sudo touch .htaccess & amp; & amp; sudo chmod 766 .htaccess


2
Bu çözümü iki nedenden dolayı tercih ediyorum: 1. && genellikle daha iyidir ; böylece ilk komut başarısız olursa durur, 2. genellikle sadece gerekli olan belirli programı çalıştırmak daha iyidir sudo, onları tek bir araya getirmeye çalışmak yerine sudo gereğinden fazla ayrıcalıklarla daha fazla kod çalıştırma ve çalıştırma
Chris Page

Ne yapmak istersem scp admin@host.com:file1 && scp admin@host.com:file2 && scp admin@host.com:file3 ve SSH anahtarımın şifresini ayarlamıştım, her zaman şifremi soruyor, birleştirmenin bir yolu var mı ???
Akshay Khale

2

Hayır öyle değil.

Yapabileceğiniz tek şey, bu iki komutu bir arada birleştirmek sudo:

sudo sh -c 'touch .htaccess && chmod 766 .htaccess'

Başka bir çözüm (yalnızca bir dış arama ile, aynı zamanda iki komutla birlikte):

sudo sh -c 'umask 011 && touch .htaccess'

1
İyi öneriler, ancak bunları kullanmak için revize ediyorum && yerine ;olsa. Ayrıca, genel olarak sadece iki kullanırdım sudo komutlar, çünkü onlarla birlikte çalışması gereken tam programlardan ziyade yükseltilmiş ayrıcalıklara sahip bir kabuğun tamamını çalıştırmak riskli ve risklidir (bu durumda, dokun ve chmod).
Chris Page

Evet haklısın, daha iyi olurdu
Igor Chubin

1

Noktalı virgül, aşağıdaki gibi tek bir satıra birden çok komut yerleştirmenize izin verir:

sudo touch .htaccess; sudo chmod 766 .htaccess


1
Bu iyi bir öneri, ancak kullanma alışkanlığı kazanmak için iyi bir fikir && yerine ; Birbirine bağlı komutları çalıştırırken bir komutun başarısız olması durumunda durmasını sağlar.
Chris Page

0

komutları noktalı virgül ile ayırın. (;)

Örnek

echo firstname; echo lastname;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.