mac bir komutun bir terminalin farklı bir sekmesinde / penceresinde nasıl çalıştırılacağını


1

Windows’ta komut isteminden herhangi bir programı yazarak çalıştırabilirim

c:> start startup.sh

ve windows farklı bir komut isteminde (terminal) pencerede startup.sh dosyasını çalıştıracaktır.

Mac içinde aynı şeyi nasıl yapabilirim (linux bash), startup.sh betiği
1 ile çalışır ) farklı bir terminal penceresi açabilir mi?
2) farklı bir terminal sekmesi?

güncelleme: Belirtildiği gibi, bir program (mc gibi) veya başka bir sekmede veya pencerede bir kabuk komut dosyası başlatmak istiyorum - sadece bir kabuk komut dosyası değil.


1
Bu sayfadaki herhangi bir şey yardımcı olabilir mi? stackoverflow.com/questions/7171725/…
Touff

Yanıtlar:


1

Bir komut dosyasını yeni bir Terminal örneğinde aşağıdakilerle başlatabilirsiniz:

open -b com.apple.terminal test.sh

test.shÇalıştırmak istediğiniz komut dosyasının adı nerede .

Kaynak


@anjanbecchu aşağıdaki betiği buldu:

TAB_NAME=$1; COMMAND=$2; osascript -e "tell application \"Terminal\"" -e "tell application \"System Events\" to keystroke \"t\" using {command down}" -e "do script \"printf '\\\e]1;$TAB_NAME\\\a'; $COMMAND\" in front window" -e "end tell" > /dev/null

Bir kabuk betiği başlatmak için bu komutu denediğimde çalışıyor; Ancak, gece yarısı komutanına (mc) başlamak için aynı komutu kullanmaya çalıştığımda, mc'nin geçerli dizinde bulunduğu varsayılıyor. Mc'nin tam yolunu yazmak istemiyorum. Ne istediğimi bulmak için $ PATH kullanmanın bir yolu var mı? Ayrıca, shellscript / programı başka bir sekmede çalıştırmanın yolu nedir?
anjanbacchu

@anjanbacchu Başka bir sekmede çalıştırabileceğini sanmıyorum. Sorun şu anda sürtünen Terminal uygulaması ile komut satırından konuşmanın kolay bir yolu olmamasıdır. Yukarıdakiler bile doğrudan konuşmuyor - dosyaya çift tıklamış olsanız da, işletim sisteminin açık dosya tipi mekanizmasını kullanıyor. Komut satırının Windows'ta çalışma şekli, yapmak istediğinizi çok zorlaştıran * nix'ten (OS X, Linux) çok farklıdır.
Darth Android

İnternette aradığım şeyi yapabilecek bir senaryo buldum. İşte kabuk işlevi.TAB_NAME = $ 1; KOMUTANLIĞI 2 $ =; osascript -e "uygulama \" Terminal \ "" -e "uygulama \" Sistem Olayları "nı" {komut aşağı} "-e" komut dosyası \ "printf '\\ e] ile 1; $ TAB_NAME \\\ a '; $ COMMAND \ "ön pencerede" -e "son söyleyin"> / dev / null
anjanbacchu 7:14
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.