Bagaimana cara menjalankan skrip baris perintah?

17

Di Windows, saya bisa membuat .batfile. Saya klik dua kali dan semua baris ditafsirkan seolah-olah saya telah memasukkannya ke konsol.

Di OS X, file atau program apa yang harus saya gunakan? Jika saya ingin menulis file dengan;

 echo hello world

Saya ingin mengklik dua kali file ini dan menjalankannya di konsol. Bagaimana saya melakukan ini?

Rodrigo
sumber
apakah file perlu dijalankan saat diklik ganda, atau Anda hanya ingin menjalankan file dengan mengetikkan nama file?
Phil M
file klik dua kali lebih cepat :)
Rodrigo

Jawaban:

24

Dasar-dasar terminal di OS X sama dengan yang digunakan di Linux. Apa yang Anda cari secara khusus biasanya disebut sebagai "Shell Scripting".

Shell default saat Anda membuka Terminal.app(terletak di /Applications/Utilties) adalah shell bash.

OS X telah memiliki built-in shell handler yang dapat diakses melalui Finder dan aplikasi lain melalui .commandekstensi, meskipun tidak melalui .shekstensi. Namun, pengaturan skrip untuk dijalankan melalui Finder lebih rumit lagi.

  1. Buat skrip shell sederhana, seperti contoh Anda Saya membuat aplikasi Hello World:
#!/bin/bash
echo "Hello World"
  1. Simpan file ini sebagai HelloWorld.command.

  2. Berikan izin file ini untuk dieksekusi. chmod u+x HelloWorld.commandharus melakukan itu.

  3. Buka direktori tempat Anda menyimpan file ini di Finder. Kemudian klik dua kali pada HelloWorld.commandfile tersebut.

Ini akan membuka terminal dan menjalankan skrip, output di komputer saya adalah sebagai berikut:

$ /Pengguna/jason/Aplikasi/HelloWorld.command; keluar;
Hello World
logout

[Proses selesai]

Cara alternatif untuk mengeksekusi file ini adalah ketika masih berada di Terminal sendiri, cukup keluarkan ./HelloWorld.commanddengan asumsi Anda berada di direktori yang sama dengan file tersebut.

Melakukannya akan menghasilkan output yang jauh lebih sederhana:

Aplikasi jason-mac $ ./HelloWorld.command Aplikasi
Hello World
jason-mac $

Anda baru saja membuat dan mengeksekusi skrip shell di OS X!

Jason Salaz
sumber
Sebagai tambahan: Ini sangat mengecewakan karena OS X tidak melakukan ini dengan file ".sh", hanya file ".command". Ya, mungkin untuk mengubah ini, tetapi. Perintah sudah ada, jadi ini solusi yang saya sarankan.
Jason Salaz
Apakah Anda ingin mengajukan pertanyaan bagaimana cara menyuntikkan .sh ke dalam database layanan peluncuran atau haruskah saya?
bmike
Anda jelas punya ide (pikiran itu bahkan tidak terlintas di benak saya), jadi Anda boleh melakukannya.
Jason Salaz
Saya mendapat ide dari Anda - ini dia, ima minta semuanya sendiri ...
bmike
Ini memberi saya:chown: u+x: Invalid argument
Rodrigo
4

Setara dengan Console atau Command Prompt di Windows adalah aplikasi Terminal yang terletak di / Aplikasi / Utilitas /

Setara dengan DOS (atau apa pun yang mereka sebut hari ini) adalah "bash"

Setara dengan file batch (.bat) di Windows adalah skrip shell (.sh)

Lakukan pencarian Google untuk "bash" "referensi" dan Anda akan menemukan sisanya. Saya juga merekomendasikan membeli Bash Cookbook (O'Reilly).

Khususnya, ini yang akan Anda ketik di jendela terminal untuk mendapatkan skrip "hello world" Anda:

Untuk membuat file:

    echo "echo hello world" > file.sh

Untuk mengubah izin agar file dapat dieksekusi:

    chmod 755 file.sh

Untuk menjalankan skrip:

    ./file.sh

Jika Anda ingin dapat mengklik dua kali dari Finder, klik kanan (atau klik kontrol) pada file dan pilih Get Info, lalu di bawah Open With, pilih aplikasi Terminal. Atau Anda dapat menggunakan ekstensi .command alih-alih ekstensi .sh.

Phil M
sumber
2

Anda mungkin ingin memberi tampilan pada AppleScript. Buku ini oleh Sal Soghoian dianggap oleh banyak buku masuk di AppleScript.

Cara lain yang baik bagi pengguna untuk mengotomatisasi aplikasi Mac adalah menggunakan Automator . Anda mungkin ingin mencobanya juga. Semoga ini membantu.

Memperbarui

Tampaknya Anda mencari sesuatu seperti scripting shell Unix. Ini dua tutorial layak dan tampaknya untuk menutupi dasar-dasar.

Christian Correa
sumber
Saya melihat ini, tetapi AppleScript bukan skrip terminal. Saya pikir Anda dapat melakukan: "Pergi ke terminal dan tulis perintah x". Yah, bukan gaya .bat (dan sedikit lebih sulit)
Rodrigo
Sepertinya skrip shell Unix adalah yang Anda cari.
Christian Correa
0

Skrip shell. Saya tidak berpikir Ask Different akan menjadi tempat yang cocok untuk membahasnya secara mendalam tetapi ada panduan yang sangat rinci di sini: http://tldp.org/LDP/abs/html/index.html

Mac OS X Bersertifikat UNIX mulai 10.5 pada (kanan?) Jadi kebijaksanaan ini di sini juga berlaku untuk Linux dan OS serupa UNIX lainnya.

(dengan cara yang tidak terlalu rumit, Automator Mac OS X sangat kuat, seperti halnya AppleScript Editor, keduanya dapat mengeksekusi skrip shell dan perintah lainnya dengan program, dan membungkusnya menjadi bundel .app yang nyaman untuk Launchpad atau berbagi dengan teman)

Swizzlr
sumber
Dari pengantar panduan yang saya tautkan: "Program shell, yang disebut skrip, adalah alat yang mudah digunakan untuk membangun aplikasi dengan" menempelkan "panggilan sistem, alat, utilitas, dan biner yang dikompilasi. Hampir seluruh repertoar dari Perintah, utilitas, dan alat UNIX tersedia untuk doa oleh skrip shell. Jika itu tidak cukup, perintah shell internal, seperti pengujian dan konstruksi loop, memberikan kekuatan tambahan dan fleksibilitas untuk skrip. "
Swizzlr
Dan dengan "tempat yang cocok" Saya pikir shell scripting benar-benar paling baik dibahas di SuperUser: superuser.com/questions/tagged/shell-script
Swizzlr
-2

Untuk mac adalah file .sh alias skrip Shell

Davide
sumber
Tetapi ketika memanggilnya dari finder, Anda akan ingin menggunakannya .command. .shadalah tipe file tidak ditangani dari finder (secara default).
Jason Salaz