Bu file.sh dosyasını çift tıklama ile nasıl yürütülebilir yapabilirim?


165

Öncelikle Mac kullanıyorum.

Sonra, biz bu "file.sh" yürütmek gerekir denir. Her yürütmek gerekir Terminal açmak ve yazmak zorunda:

cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh

Bu iyi, ama dosyayı çift tıklamayla çalıştırırsam çok daha hızlı olacağını hissediyorum, değil mi?

Benim sorum şu, bu dosyayı çift tıklama ile nasıl çalıştırılabilir hale getirebilirim?

Fikirlerim şunlardı:

a) chmod gibi bir şeyi terminale yazın ve izinleri değiştirin?

b) bir dosya yapın, yukarıda yazdığım kodu içine koyun ^ ve sonra bu dosyayı yürütülebilir hale getirin?

c) bunu nasıl yapacak şekilde otomasyon yapmalı?

Hangi yol en iyisidir, yoksa daha iyi bir yol var mı? Ayrıca lütfen olabildiğince açıklayın, Terminal için yeniyim. Teşekkürler.


1
Güzel, tıklaması kolay bir komut dosyası istiyorsanız, evet, Automator doğru araçtır. Sorunuzdan bunu biliyor gibisiniz, peki sorunuz nedir?
Rob Napier

aynı Soru ama jdk dmg, simgeler oluşturmak için bazı uygulama klasörü var, bazı Jar .. ama ben automator veya .command üzerinden çalıştırmak / oluşturmak için başarısız oldum
SANTOSH

Yanıtlar:


350

Varsayılan olarak, *.shdosyalar bir metin düzenleyicisinde (Xcode veya TextEdit) açılır. Terminal'de açtığınızda çalıştırılacak bir kabuk komut dosyası oluşturmak için, komut dosyasını "komut" uzantısıyla adlandırın, örn file.command. Varsayılan olarak, bunlar dosyayı kabuk komut dosyası olarak yürütecek olan Terminal'e gönderilir.

Ayrıca dosyanın yürütülebilir olduğundan emin olmanız gerekir, örn .:

chmod +x file.command

Bu olmadan, Terminal yürütmeyi reddedecektir.

#!Bu özel senaryoda komut dosyasının bir önekle başlaması gerekmediğini unutmayın , çünkü Terminal özellikle varsayılan kabuğunuzla yürütmeyi ayarlamaktadır. (Elbette, #!hangi kabuğun kullanıldığını özelleştirmek istiyorsanız veya farklı bir kabuk kullanırken komut satırından yürütebildiğinizden emin olmak istiyorsanız bir satır ekleyebilirsiniz .)

Terminal'in kabuk dizesini çalışma dizinini değiştirmeden yürüttüğünü de unutmayın. cdBelli bir çalışma dizini ile çalıştırmak için komut dosyasına bir komutla başlamanız gerekir.


1
Daha yararlı cevap için teşekkürler.
Jacob

46
Ayrıca cd "`dirname "$0"`"geçerli çalışma dizinini kabuk skriptinizin bulunduğu dizine ayarlamak için de kullanabilirsiniz .
gearsdigital

3
Estetik nedenlerden dolayı .command dosyasına sağ tıklamalı ve bilgileri açmalısınız. Orada soneki gizleme seçeneğiniz vardır (isim ve sonek altında).
Bijan

Uygulamaları open -n ...komutla çalıştırmak için bu yöntemi kullanıyorum . Çalışıyor, ancak Terminal penceresi her açıldığında ve bana "[İşlem tamamlandı]" gösteriyor. Terminal penceresinin bir şekilde önlenmesi mümkün müdür?
Nik

1
@Nik Bir terminal penceresinde görünmesini istemiyorsanız, Terminal'de çalıştırmanın bir anlamı yoktur. Bunun yerine, çalıştırılabilirliği bir shebang komut dosyası olan bir uygulama paketi yapın. Veya komut dosyasını çalıştıran bir AppleScript veya Automator uygulaması oluşturun. İşlem bittiğinde pencereyi kapatmak için profili değiştirmek için Terminal Tercihleri'ni de kullanabilirsiniz, ancak yalnızca kullanıcı etkileşimi olmadan bir kabuk komut dosyası çalıştırmak istiyorsanız bu en iyi çözüm değildir.
Chris Page

31

Uzantıyı tamamen kaldırın ve çift tıklayın. Çoğu sistem kabuğu betiği bu şekildedir. Bir shebang olduğu sürece işe yarayacak.


1
BTW, "shebang" çoğunlukla herhangi bir satırın önünde bu çizgi: #! / Bin / sh ama farklı olabilir, diğer durumlarda sağlanan bağlantıyı okuyun.
Lukas Liesis

Bu yaklaşımın chmod yapmasına gerek yok mu?
Atul

11

Finder'a .shdosyayı Terminal'de açmasını söyleyebilirsiniz :

  1. Dosyayı seçin
  2. Üzerinde Bilgi (cmd-i) alın
  3. "Birlikte aç" bölümünde, açılır menüden "Diğer…" i seçin
  4. Uygulama olarak Terminal'i seçin

Bu, yeniden adlandırmakla aynı etkiye sahip olacaktır, .commandancak… yeniden adlandırmanız gerekmez :)


8
  1. Terminali Başlat
  2. Aşağıdakini yazın -> nano dosya adı
  3. Toplu iş dosyası içeriğini yapıştırın ve kaydedin
  4. Aşağıdakini yazın -> chmod + x fileName
  5. Şimdi exe dosyası oluşturacak ve çift tıklayabilirsiniz.

Dosya adı çift tırnak altında olmalıdır. İ kullandığım için Mac- benim vaka içeriği> ise toplu dosya olduğunu

cd / Kullanıcılar / adınız / Belgeler / SeleniumServer

java -jar selenyum-sunucu-bağımsız-3.3.1.jar -rol hub

Kesinlikle işe yarayacak


0

yürütülebilir dosyayı chmodbu şekilde kullanarak değiştirebilirsiniz

chmod 755 file.sh

ve yürütmek için bu komutu kullanın

./file.sh

SO hoş geldiniz! Cevabınız önceden kabul edilmiş cevaba hiçbir şey eklemiyor. Lütfen bunun neden mevcut olan diğer cevaplardan farklı olduğunu açıklayın.
GabrielOshiro
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.