голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как складывать числа let BASH

Как складывать числа в BASH. Если просто сложите два числа с оператором +, то это ничего не даст. Нужно поместить сумму чисел в круглые скобочки $((n1 + n2)).


#!/bin/bash
#операции сложения

a=1
b=2
c=3

# прибавляем числа
let a=1+10

res=$(( $a + $b + $c ))

echo $res

Итераторы

В BASH переменные не имеют типов данных. Значение любой - это строка. Это очень странно! Команда let производит арифметические операции над переменными. Она как бы конвертирует строку в математическое действие.


a=2334 # Целое число.
let "a += 1"
echo "a = $a " # a = 2335
echo # Все еще целое число.
b=${a/23/BB} # замена "23" на "BB".
# Происходит трансформация числа в строку.

echo "b = $b" # b = BB35
declare -i b # Явное указание типа здесь не поможет.
echo "b = $b" # b = BB35

let "b += 1" # BB35 + 1 =
echo "b = $b" # b = 1

c=BB34
echo "c = $c" # c = BB34
d=${c/BB/23} # замена "BB" на "23". 
# Переменная $d становится целочисленной.

echo "d = $d" # d = 2334
let "d += 1" # 2334 + 1 =
echo "d = $d" # d = 2335
# А что происходит с "пустыми" переменными?
e=""
echo "e = $e" # e =
let "e += 1" # Арифметические операции допускают использование "пустых" переменных?
echo "e = $e" # e = 1echo # "Пустая" переменная становится целочисленной.

# А что происходит с необъявленными переменными?
echo "f = $f" # f =
let "f += 1" # Арифметические операции допустимы?
echo "f = $f" # f = 1
echo # Необъявленная переменная трансформируется в целочисленную.
просмотры: 2518, уровень: лёгкий уровень, рейтинг: 0, дата: 2017-05-15 12:39:24
проголосовать:

Комментарии:






поиск
реклама
банеры
домен RU всего за 99 рублей
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.