linux
  • Введение
  • Установка программ
  • Полезные команды
  • Telnet и Curl
  • Установка Android Studio
  • Установка Unity 3D
  • Шаблоны имени
  • Форматный выбор файлов
  • Навигация по каталогам
  • Операции над файлами
  • Работа с ссылками
  • AB тестирование
  • Справка о командах
  • Композиция команд
  • Процессы и память
  • Docker
  • Bash
  • Nginx
  • Загрузка файлов через scp
  • Открытие порта
  • Jenkins
  • Kafka
Powered by GitBook
On this page
  • Арифметические операции
  • Присваивание
  • Подстановка команд
  • Конструкции ветвления
  • Сравнение чисел
  • Сравнение строк
  • Циклы
  • Цикл For
  • Цикл While
  • Вложенные циклы
  • Команда break
  • Параметры скрипта
  • Ввод с клавиатуры
  • Сигналы
  • Запуск в фоне
  • Использование функций

Was this helpful?

Bash

Арифметические операции

Напишем программу для вычисления суммы двух чисел.

Создадим файл myscript

Пишем в файле:

#!/bin/bash
a=4
b=12
c=$((a+b))
echo "Summa: $c"

Запускаем программу

Пишем в терминале:

bash ./myscript

Присваивание

Напишем программу для замены значений двух чисел.

Напишем код:

#!/bin/bash
a=12
b=5
echo "A: $a  B: $b"
c=$a
a=$b
b=$c
echo "A: $a  B: $b"

Подстановка команд

Напишем программу для вывода на экран текущей директории.

Пишем код:

#!/bin/bash
p=$(pwd)
echo "This folder is: $p"

В данном коде в переменную p был сохранён результат работы системной функции pwd

Конструкции ветвления

Сравнение чисел

Напишем программу для сравнения двух целых чисел.

Пишем код:

#!/bin/bash
a=8
b=4
if [ $a -gt $b ] 
then
    echo "A bigger B"
elif [ $a -lt $b ] 
then
    echo "A less B"
else
    echo "A equally B"
fi

Команды сравнения числовых значений:

  1. n1 -eq n2 Возвращает истинное значение, если n1 равно n2.

  2. n1 -ge n2 Возвращает истинное значение, если n1 больше или равно n2.

  3. n1 -gt n2 Возвращает истинное значение, если n1 больше n2.

  4. n1 -le n2 Возвращает истинное значение, если n1 меньше или равно n2.

  5. n1 -lt n2 Возвращает истинное значение, если n1 меньше n2.

  6. n1 -ne n2 Возвращает истинное значение, если n1 не равно n2.

Сравнение строк

Напишем программу для сравнения двух строк.

Пишем код:

#!/bin/bash
x="xxx xx xx"
y="bbb bb bb"
if [ "$x" \> "$y" ]
then
    echo "$x"
else
    echo "$y"
fi

Символы ">" и "<" необходимо экранировать.

Команды сравнения строк:

  1. str1 = str2 Проверяет строки на равенство, возвращает истину, если строки идентичны.

  2. str1 != str2 Возвращает истину, если строки не идентичны.

  3. str1 < str2 Возвращает истину, если str1 меньше, чем str2.

  4. str1 > str2 Возвращает истину, если str1 больше, чем str2.

  5. -n str1 Возвращает истину, если длина str1 больше нуля.

  6. -z str1 Возвращает истину, если длина str1 равна нулю.

Циклы

Цикл For

Напишем программу, которая выводит все числа на определённом отрезке и их общую сумму.

Пишем код:

#!/bin/bash
a=5
b=8
s=0
for (( i=$a; i <= $b; i++ ))
do
    echo "Index: $i"
    s=$((s+i))
done
echo "Summa of numbers: $s"

Цикл While

Напишем программу, которая выводит числа на определённом отрезке в обратном порядке.

Пишем код:

#!/bin/bash
x=7
z=2
while [ $x -ge $z ]
do
    echo "X: $x"
    x=$((x-1))
done

Вложенные циклы

Напишем программу, которая использует вложенные циклы.

Пишем код:

#!/bin/bash
n=3
m=2
for (( i=1; i <= $n; i++))
do
    echo "I: $i"
    for (( j=1; j <= $m; j++))
    do    
        echo "  J: $j"
    done
done

Команда break

Напишем программу, в которой используется команда break для выхода из цикла.

Напишем код:

#!/bin/bash
a=1
c=0
while [ $a -eq 1 ]
do
    c=$((c+1))
    echo "Hello $c"
    if [ $c -eq 5 ]
    then
        break
    fi
done

Параметры скрипта

Напишем программу, которая принимает в качестве параметров три целых числа.

Данная программа выводит на экран полученные параметры и их общую сумму.

Напишем код:

#!/bin/bash
a=$1
b=$2
c=$3
echo "A: $a"
echo "B: $b"
echo "C: $c"
s=$((a+b+c))
echo "Summa: $s"

Вызываем скрипт.

Пишем в терминале:

bash ./myscript 15 8 12

Ввод с клавиатуры

Напишем программу для расчёта периметра прямоугольника.

Ввод длин сторон осуществляется во время работы программы.

Пишем код:

#!/bin/bash
echo -n "Input A: "
read a
echo -n "Input B: "
read b
s=$((a+b))
p=$((s*2))
echo "Perimetr: $p"

Сигналы

При нажатии комбинации клавиш Ctrl + C увеличивать значение счётчика.

#!/bin/bash

number=0
one=1

incNumber() {
    number=$((number+one)) 
    echo "  Number: $number  "
}

trap "incNumber" SIGINT
while [ $number -eq $number ]
do
    sleep 5
done

Запуск в фоне

Запускаем код серверного приложения в фоне.

nohup node index.js &

После ввода команды на экране появится PID процесса.

Далее можно закрыть терминал.

Убить процесс:

kill 2960

Использование функций

Написать программу для расчёта периметра прямоугольника.

#!/bin/bash

getSumma () {
    a=$1
    b=$2
    c=$((a + b))
    echo $(($c))
}

getPerimeter () {
    x=$1
    y=$2
    s=$(getSumma $x $y)
    p=$((s + s))
    echo $(($p))
}

echo -n "Input First: "
read aaa

echo -n "Input Second: "
read bbb

result=$(getPerimeter $aaa $bbb)

echo "Result = $result"
PreviousDockerNextNginx

Last updated 5 years ago

Was this helpful?