Apakah file dengan ekstensi .sh?
Ini adalah skrip Bourne shell. Mereka digunakan dalam banyak variasi sistem operasi mirip UNIX. Mereka tidak memiliki "bahasa" dan ditafsirkan oleh shell Anda (penerjemah perintah terminal) atau jika baris pertama dalam bentuk
#!/path/to/interpreter
mereka akan menggunakan juru bahasa tertentu itu. File Anda memiliki baris pertama:
#!/bin/bash
dan itu berarti menggunakan Bourne Again Shell, yang disebut bash. Ini untuk semua tujuan praktis pengganti untuk kapal tua yang baik.
Bergantung pada penerjemah, Anda akan memiliki bahasa yang berbeda untuk menulis file.
Perlu diingat, bahwa di dunia UNIX, bukan ekstensi file yang menentukan file apa (lihat Cara menjalankan skrip shell).
Jika Anda berasal dari dunia DOS/Windows, Anda akan terbiasa dengan file yang memiliki ekstensi .bat atau .cmd (file batch). Mereka tidak serupa dalam konten, tetapi serupa dalam desain.
Cara menjalankan skrip shell
Tidak seperti beberapa sistem operasi konyol, *nix tidak bergantung secara eksklusif pada ekstensi untuk menentukan apa yang harus dilakukan dengan sebuah file. Izin juga digunakan. Ini berarti bahwa jika Anda mencoba menjalankan skrip shell setelah mengunduhnya, itu akan sama dengan mencoba "menjalankan" file teks apa pun. Ekstensi ".sh" ada hanya untuk memudahkan Anda mengenali file tersebut.
Anda harus membuat file tersebut dapat dieksekusi. Anggaplah Anda telah mengunduh file Anda sebagai file.sh
, Anda kemudian dapat menjalankannya di terminal Anda:
chmod +x file.sh
chmod
adalah perintah untuk mengubah hak akses file, +x
set mengeksekusi izin (dalam hal ini untuk semua orang) dan akhirnya Anda memiliki nama file Anda.
Anda juga dapat melakukannya di GUI. Sebagian besar waktu Anda dapat mengklik kanan pada file dan memilih properti, di XUbuntu opsi izin terlihat seperti ini:
Jika Anda tidak ingin mengubah izin. Anda juga dapat memaksa shell untuk menjalankan perintah. Di terminal Anda dapat menjalankan:
bash file.sh
Shell harus sama dengan baris pertama skrip Anda.
Seberapa aman?
Anda mungkin merasa aneh bahwa Anda harus melakukan tugas lain secara manual untuk mengeksekusi file. Tapi ini sebagian karena kebutuhan yang kuat akan keamanan.
Pada dasarnya ketika Anda mengunduh dan menjalankan skrip bash, itu sama dengan seseorang mengatakan kepada Anda "jalankan semua perintah ini secara berurutan di komputer Anda, saya berjanji hasilnya akan baik dan aman". Tanyakan pada diri Anda apakah Anda mempercayai pihak yang telah menyediakan file ini, tanyakan pada diri Anda apakah Anda yakin telah mengunduh file dari tempat yang sama seperti yang Anda pikirkan, bahkan mungkin melihat ke dalam untuk melihat apakah ada sesuatu yang tidak pada tempatnya (walaupun itu membutuhkan bahwa Anda mengetahui sesuatu tentang perintah *nix dan pemrograman bash).
Sayangnya selain peringatan di atas saya tidak bisa memberikan gambaran langkah demi langkah tentang apa yang harus Anda lakukan untuk mencegah hal-hal jahat terjadi dengan komputer Anda; jadi ingatlah bahwa setiap kali Anda mendapatkan dan menjalankan file yang dapat dieksekusi dari seseorang, Anda sebenarnya mengatakan, "Tentu, Anda dapat menggunakan komputer saya untuk melakukan sesuatu".
Jika Anda membuka tautan kedua di browser, Anda akan melihat kode sumber:
#!/bin/bash
# Script to download individual .nc files from the ORNL
# Daymet server at: http://daymet.ornl.gov
[...]
# For ranges use {start..end}
# for individul vaules, use: 1 2 3 4
for year in {2002..2003}
do
for tile in {1159..1160}
do wget --limit-rate=3m http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc -O ${tile}_${year}_vp.nc
# An example using curl instead of wget
#do curl --limit-rate 3M -o ${tile}_${year}_vp.nc http://daymet.ornl.gov/thredds/fileServer/allcf/${year}/${tile}_${year}/vp.nc
done
done
Jadi ini adalah skrip bash. Punya Linux?
Bagaimanapun, skrip tidak lain adalah serangkaian pengambilan HTTP. Baik wget dan curl tersedia untuk sebagian besar sistem operasi dan hampir semua bahasa memiliki pustaka HTTP sehingga cukup sepele untuk menulis ulang di teknologi lain. Ada juga beberapa port Windows dari bash itu sendiri (git termasuk satu). Last but not least, Windows 10 sekarang memiliki dukungan asli untuk binari Linux.
sh
file adalah file executable shell unix (linux), mereka setara (tetapi jauh lebih kuat) dari bat
file di windows.
Jadi Anda perlu menjalankannya dari konsol linux, cukup ketikkan namanya sama seperti yang Anda lakukan dengan file bat di windows.