Jawaban:
$prompt: /path/to/script
dan tekan enter. Perhatikan bahwa Anda perlu memastikan skrip memiliki izin eksekusi.
/path/to
direktori, misalnya dengan cd /path/to
perintah, Anda dapat masuk ./script
untuk menjalankan skrip Anda. Jangan lupa, dalam hal ini './' sebelum 'skrip'
Cara lain untuk mengeksekusinya (kali ini tanpa mengatur izin eksekusi):
bash /path/to/scriptname
cd ke direktori yang berisi script, atau taruh di folder bin yang ada di $ PATH Anda
lalu ketik
./scriptname.sh
jika dalam direktori yang sama atau
scriptname.sh
jika ada di folder bin.
./scriptname.sh
bekerja untuk saya tetapi scriptname.sh
memberi scriptname.sh: command not found
. -rwxr-xr-x
adalah izinnya.
cd
mana saja sama sekali melakukan kesalahpahaman pemula umum lainnya. Kecuali skrip secara internal memiliki ketergantungan yang memerlukannya untuk dijalankan di direktori tertentu (seperti, perlu membaca file data yang skripnya tidak memberikan opsi untuk ditunjukkan) Anda tidak perlu ke cd
mana pun untuk menjalankannya, dan sangat sering tidak mau.
Anda bisa melakukan:
sh scriptname.sh
sh
merupakan symlink ke bash
, atau jika skrip tidak menggunakan konstruksi khusus Bash. Dalam kasus sebelumnya, menggunakan bash
alih-alih sh
merupakan satu-satunya solusi portabel yang benar; dalam kasus terakhir, ini bukan jawaban yang benar untuk pertanyaan khusus ini, karena OP menanyakan saran untuk skrip Bash secara khusus. Mengabaikan jawaban yang salah adalah tidak bertanggung jawab; pengguna yang gagal memahami perbedaannya sering kali memposting di sini, dan perlu diperlihatkan mengapa jawaban "berhasil untuk saya" ini tidak berhasil untuk mereka.
Pertama Anda harus membuatnya executable menggunakan: chmod +x name_of_your_file_script
.
Setelah Anda membuatnya dapat dieksekusi, Anda dapat menjalankannya menggunakan ./same_name_of_your_file_script
Ubah direktori Anda ke tempat skrip berada dengan menggunakan perintah cd
Lalu ketik
bash program-name.sh
cd
kemana - mana; Anda dapat menentukan nama jalur kompleks yang sewenang-wenang sebagai argumen untuk bash
; memang, program apa pun yang menggunakan argumen nama file bekerja dengan cara ini (atau yang mengerikan, rusak total).
Ini adalah utas lama, tetapi saya kebetulan menemukannya dan saya terkejut belum ada yang memberikan jawaban lengkap. Jadi begini ...
T: Bagaimana saya menjalankan ini di Terminal?
Kebingungan dan Konflik:
sudo
melakukan semua ini. Perintah ini disediakan untuk menjalankan perintah sebagai pengguna lain atau pengguna 'root' (administrator). Posting yang bagus di sini .(Seseorang yang baru belajar bagaimana mengeksekusi skrip tidak boleh menggunakan perintah ini kecuali ada kebutuhan nyata, seperti menginstal program baru. Tempat yang baik untuk meletakkan skrip Anda ada di folder ~ / bin Anda. Anda bisa sampai di sana dengan mengetik cd ~/bin
atau cd $HOME/bin
dari prompt terminal. Anda akan memiliki izin penuh di folder itu.)
Untuk "menjalankan skrip ini" dari terminal pada sistem tipe Unix / Linux, Anda harus melakukan tiga hal:
Beri tahu sistem lokasi skrip. (Pilih salah satu)
/path/to/script.sh
). Anda dapat memverifikasi jalur lengkap dengan mengetik pwd
atau echo $PWD
di terminal../
untuk jalur (mis ./script.sh
.). Mudah.PATH
dan ketikkan saja namanya (mis script.sh
.). Anda dapat memverifikasi sistem PATH
dengan mengetik echo $PATH
atau echo -e ${PATH//:/\\n}
jika Anda ingin daftar yang lebih rapi.Beri tahu sistem bahwa skrip memiliki izin untuk dijalankan. (Pilih salah satu)
chmod +x /path/to/script.sh
di terminal.chmod 755 /path/to/script.sh
jika Anda lebih suka angka. Ada diskusi hebat dengan bagan keren di sini .Beri tahu sistem jenis skripnya. (Pilih salah satu)
BASH /path/to/script.sh
atau PHP /path/to/script.php
) Jika skrip memiliki ekstensi, seperti .php atau .py, itu adalah bagian dari nama skrip dan Anda harus memasukkannya.#!/bin/bash
) dalam contoh Anda. Jika Anda memilikinya sebagai baris pertama skrip Anda, sistem akan menggunakan program itu untuk mengeksekusi skrip. Tidak perlu mengetik program atau menggunakan ekstensi.PATH
dengan menggunakan #!/usr/bin/env
diikuti dengan nama program (misalnya #!/usr/bin/env bash
atau #!/usr/bin/env python3
). Ada pro dan kontra yang dibahas secara menyeluruh di sini .script.sh
dan script.php
merupakan nama file literal dari skrip ini, dan bahwa jika Anda meletakkan ekstensi di nama file, Anda perlu memasukkannya saat Anda menjalankan skrip (dan sebaliknya; jika skrip tidak ' t memiliki ekstensi, jangan letakkan satu). Ini tidak seperti misalnya DOS di mana Anda dapat menghilangkan .bat
atau .exe
dari nama file, dan file perlu memiliki ekstensi dari kumpulan kecil agar dianggap dapat dieksekusi.
Jika Anda berada di direktori atau folder tempat file skrip tersedia, cukup ubah izin file dalam mode yang dapat dieksekusi dengan melakukan
chmod +x your_filename.sh
Setelah itu Anda akan menjalankan script dengan menggunakan perintah berikut.
$ sudo ./your_filename.sh
Di atas "." mewakili direktori saat ini. Catatan! Jika Anda tidak berada di direktori tempat file skrip bash berada, maka Anda mengubah direktori tempat file tersebut berada dengan menggunakan
cd Directory_name/write the complete path
perintah. Jika tidak, skrip Anda tidak dapat dijalankan.
sudo
adalah salah dan berpotensi sangat salah jika Anda menggunakannya pada skrip yang tidak tepercaya yang menyalahgunakan kekuatan yang Anda berikan secara tidak perlu.
cd
suatu tempat sulit dimengerti, tapi mungkin juga salah.
chmod +x scriptname
dan kemudian./scriptname
.