Конечно, в bash уже есть умножение, но я думаю, вы знали, что ...
Если ваша проблема заключается в отсутствии seq, вы можете заменить его на что-нибудь более переносимое, например
c=0
# Print an endless sequence of lines
yes |
# Only take the first $b lines
head -n "$b" |
# Add line number as prefix for each line
nl |
# Read the numbers into i, and the rest of the line into a dummy variable
while read i dummy; do
# Update the value of c: add line number
c=`expr "$c" + "$i"`
echo "$c"
done |
# Read the last number from the while loop
tail -n 1
Это должно быть переносимо на любую Bourne-совместимую оболочку. Трюк while ... echo ... done | tail -n 1
необходим, только если значение c
не экспортируется за пределы цикла while
, как это имеет место в некоторых, но не во всех оболочках Bource.
Вы можете реализовать замену seq
однострочным Perl, но тогда вы можете написать все это на Perl (или awk, или Python, или что у вас).