Bash 3.2.39
Версия реализации bash языка программирования Unix shellGNU Bash 3.2.39.
Примеры:
Факториал - Unix shell (3):
Используется рекурсивное определение факториала.
function factorial {
typeset -i n=$1
if [ $n = 0 ]; then
echo 1
return
fi
echo $(( n * $(factorial $(( n - 1 )) ) ))
}
for i in {0..16}
do
echo "$i! = $(factorial $i)"
done
Hello, World! - Unix shell, Foma (368):
echo Hello, World!
Факториал - Unix shell (369):
Пример, работающий в версиях Unix shell, не поддерживающих синтаксис for i in {0..16}
или ((i = 0; i <= 16; i++))
: цикл for
конструируется “вручную”.
В mksh используются 32-битовые целые числа, так что для факториалов чисел больше 13 в этой реализации происходит переполнение.
function factorial {
typeset -i n=$1
if [ $n = 0 ]; then
echo 1
return
fi
echo $(( n * $(factorial $(( n - 1 )) ) ))
}
i=0
while [[ $i -le 16 ]]
do
echo "$i! = $(factorial $i)"
((i++))
done
Комментарии
]]>blog comments powered by Disqus
]]>