Saya memiliki skrip sederhana berikut:
#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {1..99..2}
do
echo $i
done
Output jika saya menjalankan sh file.sh:
Bash version ...
{1..99..2}
Output jika saya menjalankan bash file.sh:
Bash version 4.2.25(1)-release...
1
3
5
.
.
.
99
Saya punya dua pertanyaan:
Jika saya telah menulis shell shabang line yang menentukan, tidakkah seharusnya dijalankan dengan bash apakah saya menggunakan
sh file.shataubash file.sh?Saya mengerti bahwa
$BASH_VERSIONtidak dikenali oleh sh tetapi apa masalah dengan untuk loop? Mengapa tidak mencetak angka?
dash, Yang seperti yang Anda katakan menyediakanshdi Ubuntu, tidak hadir terutama "menjadi prompt darurat untuk keadaan DIRE" tetapi sebaliknya sehingga sistem dapat berjalan, dan mulai , cepat . Dengan cara ini,dashsangat cocok untuk digunakan dalam OS modern, tetapi apa yang cocok untuk itu adalah sebagai shell profil rendah, cepat untuk skrip - terutama, menjalankan skrip sistem saat boot OS besar, kompleks, modern, dengan minimal overhead kinerja.