У меня есть следующий простой скрипт:
#!/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
У меня есть два запроса:
Если я написал строку shabang, определяющую shell, не должен ли он работать с bash, использую ли я
sh file.sh
илиbash file.sh
?Я понимаю, что
$BASH_VERSION
не распознается sh, но в чем проблема для цикла? Почему не печатать цифры?
источник
dash
, которое, как вы говорите,sh
в Ubuntu, в основном не присутствует, «чтобы быть экстренным сообщением для обстоятельств DIRE», но вместо этого система может работать и запускаться быстро. , Таким образом,dash
хорошо подходит для использования в современных ОС, но то , что он хорошо подходит для как низкопрофильной, быстрая оболочка для написания сценариев - особенно, работает система скриптов при загрузке большой, сложной, современной ОС, с минимальными затратами накладные расходы.sh
довольно постоянно, и особенно интенсивно, как ботинки Ubuntu. Это главным образом важно для автоматизированных сценариев, и это очень важный пример использования в Ubuntu. (Если вы должны были удалить в/bin/sh
символическую ссылку - так что, в сущности, не было бы «нет SH» - все пойдет ужасно неправильно: Ubuntu не может загрузиться в работоспособное состояние.)