Bagaimana cara menjalankan file .sh atau .command di Terminal

87

Saya selalu ingin dapat menjalankan skrip yang saya unduh secara online langsung dari Finder tetapi hanya mengklik dua kali file tersebut tidak berfungsi.

Maximus
sumber

Jawaban:

103

Buka Terminal, ketik sh /path/to/filedan tekan enter.

Lebih cepat adalah mengetik shdan spasi lalu seret file ke jendela dan lepaskan ikon di mana saja di jendela.

Maximus
sumber
3
Menurut Anda apa yang akan terjadi jika skrip shell ditulis dalam sintaksis shell lain, seperti tcsh, zsh, atau ksh? Suffix shmenunjukkan skrip shell tidak "jalankan skrip di shell ini".
fd0
3
@ fd0 Baris shebang akan membereskannya.
user14492
4
@ user14492- Saat Anda menjalankan skrip shell karena shell shell_scriptgaris shebang diabaikan. Shell membaca baris pertama sebagai komentar.
fd0
@ fd0, saya tidak mengerti. Bagaimana sh /path/to/fileperbedaan semantik dari alternatif /path/to/file.sh?
Pacerier
2
@ Pacerier- Dalam formulir pertama, pengguna yang memohon harus dapat membaca file dan memilih penerjemah mana yang akan membaca file tersebut. Dalam bentuk kedua, izin file harus dibaca dan dieksekusi untuk pengguna yang memohon dan juru bahasa ditentukan oleh hash bang pada baris pertama skrip. Dalam kedua kasus, kernel tidak menafsirkan akhiran pada file.
fd0
12

Atau, Anda juga bisa melakukannya

cd /directory/with/executable
chmod +x executable     # only required if your file is not already executable
./executable

yang juga akan menjalankan file yang dapat dieksekusi dengan shell yang ditentukan (jika ditentukan dalam shebang #!/bin/(shell)

mungkin mungkin menikah
sumber
1
Dalam pertanyaan itu tertulis "jalankan skrip yang saya unduh secara online". File yang diunduh dari Internet biasanya memiliki izin yang diatur ke 644.
nohillside
@patrix saya pikir itu bukan hanya internet, tetapi setiap file yang disalin dari sistem file lain ke Anda karena topeng default di akun Anda.
rwenz3l
9
chmod u+x myfile.sh
cp myfile.sh /usr/local/bin

edit ~/.bash_profiledan tambahkan baris berikut:

alias myfile=./myfile.sh

jalankan baris perintah berikut:

source ~/.bash_profile

maka Anda akan dapat menjalankan file Anda sebagai suatu program

$ myfile

Reza Farshi
sumber
di Ubuntu, skrip apa pun di jalur Anda dapat dieksekusi selama Anda miliki #~/bin/sh, sedangkan OSXskrip di dalamnya harus memiliki .shekstensi dan aliasuntuk masing-masing skrip . : -O
Fabrizio Bertoglio
6

Ikuti langkah-langkah ini untuk menjalankan file skrip:

  1. Klik kanan pada file .sh.

  2. Arahkan kursor Buka Dengan .

  3. Pilih lain ... .

  4. Anda harus berada di folder Aplikasi . Buka folder Utilities dan pilih Terminal.app.

  5. Jika Anda tidak dapat memilih Terminal.app, ubah aplikasi yang diaktifkan dari Aplikasi yang Dianjurkan ke Semua Aplikasi . Itu di bagian bawah jendela.

  6. Jika Anda ingin membuka setiap .shfile dengan Terminal.app, centang Selalu Buka Dengan .

  7. Tekan tombol Buka di sudut kanan bawah jendela.

stwykd
sumber
3

Alasan tidak berfungsi setelah mengunduh adalah izin file tidak mengizinkannya. Untuk mengaktifkan izin eksekusi, buka Terminal dan ketik chmod 755 /path/to/script. Alih-alih mengetik lintasan lengkap, Anda dapat menyeret skrip ke jendela Terminal dari Finder. Kemudian, untuk mengeksekusi, cukup masukkan /path/to/script. Sekali lagi, Anda dapat menarik dan melepas file ke jendela Terminal. Sintaks ini harus menjalankan skrip menggunakan shell yang benar seperti yang didefinisikan pada baris pertama skrip.

Elliott
sumber
File saya .sh terbuka di editor teks yang saya buat file. Bagaimana saya bisa membukanya di Terminal saja? Saya telah menetapkan izin yang tepat.
Bart
@bart Anda perlu menambahkan ekstensi .command untuk mengeksekusi skrip di dalam finder secara langsung.
rwenz3l