Komut satırı komut dosyalarını nasıl yürütebilirim?


17

Windows'da .batdosya oluşturabilirim . Çift tıklıyorum ve tüm satırlar konsola girmiş gibi yorumlanıyor.

OS X'te hangi dosyayı veya programı kullanmam gerekiyor? Eğer ile bir dosya yazmak istiyorsanız;

 echo hello world

Bu dosyayı çift tıklatıp bir konsolda yürütmesini istiyorum. Bunu nasıl yaparım?


dosyanın çift tıklandığında çalıştırılması gerekiyor mu, yoksa yalnızca dosya adını yazarak dosyayı çalıştırmak mı istiyorsunuz?
Phil M


çift ​​tıklanan dosya daha hızlı :)
Rodrigo

Yanıtlar:


24

OS X'teki terminal temelleri Linux'ta kullanılanlarla aynıdır. Özellikle aradığınız şey genellikle "Kabuk Betiği" olarak adlandırılır.

Açtığınızda Terminal.app(içinde bulunur /Applications/Utilties) varsayılan kabuk bash kabuğudur.

OS X, Finder ve diğer uygulamalar aracılığıyla .commanduzantı üzerinden erişilebilen yerleşik bir kabuk işleyicisine sahipti , ancak sinir bozucu bir şekilde .shuzantı aracılığıyla değil . Ancak, komut dosyasını Finder üzerinden çalışacak şekilde ayarlamak daha da karmaşıktır.

  1. Örneğin bir Hello World uygulaması yaptığım gibi basit bir kabuk komut dosyası oluşturun:
#!/bin/bash
echo "Hello World"
  1. Bu dosyayı olarak kaydedin HelloWorld.command.

  2. Bu dosyanın yürütülmesine izin verin. chmod u+x HelloWorld.commandbunu yapmalı.

  3. Bu dosyayı Finder'da kaydettiğiniz dizini açın. Ardından HelloWorld.commanddosyayı çift ​​tıklayın .

Bu bir terminal açar ve komut dosyasını yürütür, bilgisayarımdaki çıktı aşağıdaki gibidir:

$ /Users/jason/Applications/HelloWorld.command; çıkış;
Merhaba Dünya
oturumunu kapatma

[İşlem tamamlandı]

Bu dosyayı yürütmenin alternatif yolu hala Terminal'deyken ./HelloWorld.command, dosyayla aynı dizinde olduğunuzu varsayarsak.

Bunu yapmak çok daha basit çıktı ile sonuçlanır:

jason-mac Uygulamaları $ ./HelloWorld.command
Merhaba Dünya
jason-mac Uygulamaları $

OS X'te yeni bir kabuk betiği oluşturup yürüttünüz!


Bir kenara: OS X'in bunu ".sh" dosyalarıyla değil, yalnızca ".command" dosyalarıyla yapması gülünç derecede sinir bozucu. Evet, bunu değiştirmek mümkündür, ancak .command zaten var, bu yüzden benim önerilen çözümüm.
Jason Salaz

.Sh'nin fırlatma hizmetleri veritabanına nasıl enjekte edileceği sorusunu sormak istiyor musunuz yoksa ben mi?
bmike

Açıkçası fikriniz vardı (düşünce aklımdan bile geçmedi), bu yüzden bunu kabul edebilirsiniz.
Jason Salaz

Fikrini senden aldım - işte gidiyor, her şeyi kendi başına
soruyorum

Bana ver:chown: u+x: Invalid argument
Rodrigo

4

Windows'daki Konsol veya Komut İstemi'nin eşdeğeri, / Applications / Utilities / dizinindeki Terminal uygulamasıdır.

DOS eşdeğeri (ya da bu gün ne diyorlarsa) "bash"

Windows'ta bir toplu iş dosyasının (.bat) eşdeğeri bir kabuk komut dosyasıdır (.sh)

Sadece "bash" "referansı" için bir Google araması yapın ve gerisini anlayın. Ayrıca Bash Yemek Kitabı (O'Reilly) satın almanızı tavsiye ederim.

Özellikle, "merhaba dünya" komut dosyanızı almak için bir terminal penceresine yazacağınız şey bu olacaktır:

Dosyayı oluşturmak için:

    echo "echo hello world" > file.sh

Dosyayı yürütülebilir yapmak için izinleri değiştirmek için:

    chmod 755 file.sh

Komut dosyasını çalıştırmak için:

    ./file.sh

Finder'dan çift tıklayabilmek istiyorsanız, dosyaya sağ tıklayın (veya kontrol tıklayın) ve Bilgi Al'ı seçin, ardından Birlikte Aç'ın altında Terminal uygulamasını seçin. Veya .sh uzantısı yerine .command uzantısını kullanabilirsiniz.


2

Muhtemelen AppleScript'e bir bakmak istiyorsunuz. Bu kitap Sal Soghoian tarafından AppleScript üzerinde kitabın go-birçok kişi tarafından kabul edilir.

Kullanıcıların Mac uygulamalarını otomatikleştirmesinin bir başka güzel yolu da Automator kullanmaktır . Siz de denemek isteyebilirsiniz. Bu yardımcı olur umarım.

Güncelleme

Görünüşe göre Unix kabuk komut dosyası gibi bir şey arıyorsunuz. Bu iki öğretici iyi ve temelleri kapsamaktadır.


Bunu gördüm, ancak AppleScript terminal komut dosyası değil. Yapabileceğinizi düşünüyorum: "Terminal gidin ve x komutu yazın". Peki .bat stili değil (ve biraz daha zor)
Rodrigo

Görünüşe göre Unix kabuk komut dosyaları aradığınız şey.
Christian Correa

0

Kabuk komut dosyaları. Ask Ask'ın bu konuyu derinlemesine tartışmak için uygun bir yer olacağını düşünmüyorum ama burada çok ayrıntılı bir rehber var: http://tldp.org/LDP/abs/html/index.html

Mac OS X, 10.5'ten itibaren UNIX Sertifikalıdır (değil mi?) Bu nedenle, bu bilgelik Linux ve diğer UNIX benzeri işletim sistemleri için de geçerlidir.

(daha az karmaşık bir şekilde, Mac OS X'in Automator'u, her ikisi de kabuk komut dosyalarını ve diğer komutları programlarla çalıştırabilen ve Launchpad veya ile paylaşmak için uygun bir .app paketine sarabilen AppleScript Editör gibi oldukça güçlüdür. Arkadaşlar)


Bağlantı verdiğim kılavuzun başlangıcından itibaren: "Komut dosyası olarak adlandırılan bir kabuk programı, sistem çağrılarını, araçlarını, yardımcı programları ve derlenmiş ikili dosyaları" birbirine yapıştırarak "uygulamalar oluşturmak için kullanımı kolay bir araçtır. Bir kabuk komut dosyası tarafından çağrılmak için UNIX komutları, yardımcı programlar ve araçlar kullanılabilir. Bu yeterli değilse, test ve döngü yapıları gibi iç kabuk komutları komut dosyalarına ek güç ve esneklik sağlar. "
Swizzlr

Ve "uygun yer" ile kabuk komut dosyası gerçekten en iyi SuperUser üzerinde tartışılır düşünüyorum: superuser.com/questions/tagged/shell-script
Swizzlr


-2

Mac için .sh dosyası aka Shell betiği


Ancak onu bulucudan çağırırken kullanmak isteyeceksiniz .command. .shbulucunun işlenmemiş bir dosya türüdür (varsayılan olarak).
Jason Salaz
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.