Unix shellscript içindeki bir satırda birden fazla komut yürütün


-1

Soru biraz burada sorulan soru ile ilgili, https://stackoverflow.com/questions/5130847/shell-multiple-commands-in-one-line , ancak fark, tüm komutları yürütüp yürütmemem gerek komutlar başarılı veya değil. Öyleyse &&bir seçenek değil mi? I kullanabilir ;ayrı komut ve evalveya bash; gibi bir şey

eval cd /home/user/homedir ; /home/user/homedir/sbin/daemon.sh --config /home/user/homedir/etc/dd2 --script /home/user/homedir/sbin/dd3 start action1

ya da böyle bir şey?

Tavsiye lütfen,


/home/user/homedir/sbin/daemon.sh --config /home/user/homedir/etc/dd2 --script /home/user/homedir/sbin/dd3 start action1hepsi bir komut? Bize ne hakkında ne söyleyebilirsiniz /home/user/homedir/sbin/daemon.sh? (Ayrıca, neden istiyorsun cdetmek /home/user/homedirve daha sonra tam pathnames kullanabilir?)
Scott

Yanıtlar:


0

';' Eserleri. Bunun gibi basitleştirilmiş '&' işaretini de kullanabilirsiniz:

/home/user/homedir/sbin/daemon.sh --config & / home / user / homedir / etc / dd2 - script ve / home / user / homedir / sbin / dd3 eylemi başlat

(Eşzamanlı uygulama, aşağıdaki açıklama için yoruma bakınız)


1
Bu, iki komutu aynı anda ayrı işlemlerde çalıştıracaktır. (1) Bu, istendiği gibi gelmiyor. (2) İlk komut a olduğunda bu neredeyse hiçbir zaman anlamlı olmaz cd, çünkü ikinci komutun faydalanamayacağı anlamına gelir cd; yani, kullanıcının (kabuk) komut yazıldığında içinde bulunduğu dizinde çalışır ve /home/user/homediramaçlandığı gibi görünmez.
Scott

Eşzamanlı çalıştırma için, ardından: cd / home / user / homedir; /home/user/homedir/sbin/daemon.sh --config & cd / home / kullanıcı / homedir; / home / user / homedir / etc / dd2 - komut dosyası & cd / home / user / homedir; / home / user / homedir / sbin / dd3 eylemi başlat1
Sectio Aurea

evet, Scott haklı. Sectio Aurea'nın belirttiği gibi, komut dosyalarını aynı anda yürütmek için çoklu cd'yi kullanmalıyız.
Jimson Kannanthara James

Birinin kafası karışık. Soru ~/sbin/daemon.sh ––config ~/etc/dd2 ––script ~/sbin/dd3 start action1, bir komut olan bir görünüm verir . OP'den onay istedim ve aksine bir belirti almadım. Fakat yukarıdaki cevap bu emri aldı ve üç parçaya böldü. Bu, belirtildiği gibi bu sorunun cevabı değildir . Ne kullanıcı kimliği bilgilerimi göstermez ne grep; Scott; /etc/passwdde grep& Scott& /etc/passwd&.
Scott

Teknik olarak haklısın. Bu tek bir komut olabilir, ancak büyük olasılıkla görünmüyordu - daha çok bash saf kullanımı gibi görünüyordu. 'Gerçek soru' ile ilgili bu acıya dayanarak cevapladım ve OP'nin işe yaramazsa beni düzeltmesini bekledim.
Sectio Aurea,

0

Sahip olduğun iyi bir şey, ancak buna evalsahip olmak için bir nedeniniz olmadığı sürece (ben hiçbir sebep görmüyorum) , ayrılmak istiyorum.

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.