У мене є такий простий сценарій:
#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {1..99..2}
do
echo $i
done
Вихід у випадку, якщо я працюю з sh file.sh:
Bash version ...
{1..99..2}
Вихід у випадку, якщо я працюю з bash file.sh:
Bash version 4.2.25(1)-release...
1
3
5
.
.
.
99
У мене є два запити:
Якщо я написав рядок шабанга із зазначенням оболонки, чи не повинен він працювати з bash, використовую
sh file.shчиbash file.sh?Я розумію, що
$BASH_VERSIONsh не розпізнається, але в чому проблема для циклу? Чому не друкуються цифри?
dash, Який, як ви говорите, передбаченоshв Ubuntu, в основному "не є" швидким підказом для обставин DIRE ", але натомість система може запускати та починати , швидко . Таким чином,dashдобре підходить для використання в сучасних ОС, але то , що він добре підходить для як низкопрофильной, швидка оболонка для написання сценаріїв - особливо, працює система скриптів при завантаженні великий, складної, сучасної ОС, з мінімальними витратами продуктивність накладні.