Скрипт для склонения слов по числительному, к которому они примыкают. Например, 1 час, 2 часа, 3 часа, 10 часов и т.д.
pluralform.php
#!/usr/bin/php <? function pluralForm($n, $form1, $form2, $form5) { $n = abs($n) % 100; $n1 = $n % 10; if ($n > 10 && $n < 20) return $form5; if ($n1 > 1 && $n1 < 5) return $form2; if ($n1 == 1) return $form1; return $form5; } echo pluralForm($argv[1], $argv[2], $argv[3], $argv[4]); ?>
Функция pluralForm была найдена где-то на просторах сети, правда автор остался неизвестен. Внесем свой вклад в общее дело, переписав скрипт на bash'e.
pluralform.sh
#!/bin/bash n=$(($1 % 100)) n1=$(($n % 10)) if [ $n -gt 10 -a $n -lt 20 ]; then echo $4; elif [ $n1 -gt 1 -a $n1 -lt 5 ]; then echo $3; elif [ $n1 -eq 1 ]; then echo $2; else echo $4 fi
Не забываем дать права выполнения скрипту:
$ chmod u+x pluralform.sh
Пример использования:
$ ./pluralform.sh 2 штука штуки штук штуки