Windows “start” komutunun Mac eşdeğeri nedir?


2

Diğer birçok komut dosyasını çalıştıran bir komut dosyası oluşturuyorum.

Hepsine kendi süreçlerinde başlamalarına ihtiyacım var (okuma penceresi), böylece her birinin çıktısını gözden geçirebilirim, ama aynı zamanda paralel olarak çalışmalarına da ihtiyacım var, böylece birbirlerini engelleyemezler.

Ek olarak, her işlem için geçerli çalışma dizinini değiştirmem gerekiyor, bu nedenle aşağıdaki gibi bir şey yapmak işe yaramaz:

osascript -e 'tell app "Terminal" to do script "someScript.sh"'

Bir dul ve çoklu işlemlerde bunu yapabilirsiniz, eğer abonelik çıktıları için sadece standout kullanıyorsa, çağıran komut dosyası çıktıları her komut dosyası için farklı bir dosyaya yönlendirebilir
Mark

Yanıtlar:


5
osascript -e "uygulama \" Terminal \ "komut dosyasını \" cd $ (read); ~ / Path / to / someScript.sh \ ""

çalışmalı. $ (Read) değişkenini bir değişkenle değiştirebilirsiniz.


6

Bilginize, genel olarak konuşursak Windows kullanıcısının eşdeğer startolan open( adam ). En basit kullanımlarında, grafik kabuğundaki birşeye çift tıklamanın komut satırı karşılığıdır. openBununla birlikte, bu durumda yapmaya çalıştığınız şeyi yapmanın en etkili yoluna dahil olmayabilir.


openBir kabuk betiği çalıştırmak için kullanmaya çalıştığım girişler bunun bir metin düzenleyicide açılmasına neden oluyor. Belki bunun için örnek bir komut satırı ifadesi sağlayabilirsiniz?
Threed

1
Genelde opençalıştırmak için bir betik istemezsiniz, çünkü 1) eğer zaten bir terminaldeyseniz, sadece yürütebilirsiniz (örn cd <dir_containing_script>; chmod +x <script_filename>; <script_filename>;. - chmodadımın senaryo başına sadece bir kez yapılması gerektiğine dikkat edin) ve 2) keşfedilmiş, varsayılan olarak Finder'da bir kabuk betiğini çift tıklatarak yürütmez; onu düzenleme için açar. Bununla birlikte open, bir komut dosyasının çıktısını bir GUI uygulamasına göndermek için kullanabilirsiniz . Örneğin, bir betiğin stdout'unu varsayılan metin düzenleyicinizdeki yeni bir belgeye gönderin <script_filename> | open -f.
Terry N

2
Unutmayın ki chmod +x, çalışmakta olan bu son örnek için komut dosyasını çalıştırılabilir olarak işaretlemeniz gerekirdi .
Terry N

1
@ TerryN'in cevabını ekleyen openkomutun, hangi uygulamayı açacağını açıkça belirlemenizi sağlayan ek seçenekleri vardır. RTMP.
Matt

Yukarıda open"bir betiğin çıktısını bir GUI uygulamasına göndermek" için kullanabileceğinizi söylediğimde, biraz gevşek konuştuğumu açıklığa kavuşturmalıyım . Bunu, .app's stdin kanalına bağlayarak yapmak demek istemedim. Kılavuz sayfasında açıklandığı gibi (örnekler bölümünde) open -fgeçici bir dosyaya yazarak ve bu dosyayı hedef uygulamayla açarak çalışır. Ne yazık ki, bu davranış yalnızca TextEdit ve varsayılan metin düzenleyicisi için öneriliyor.
Terry N
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.