Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒FreeBSD and Nix⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA

Основы bash


Рассмотрим основы написания скриптов на bash
 

Для того, чтоб скипт можно было запустить нужно дать разрешение на выполнение:

chmod +x script.sh

Запуск производится так:

./script.sh

Простой скрипт, который выводит строку:

#!/bin/bash 
echo "Hello World"

Создание переменных:

#!/bin/bash
a='string'
echo "value in a: " + $a

Цикл for:
#!/bin/bash
for i in 1 2 3; do
echo 'String number: '$i
done

Математические действия:
#!/bin/bash
a=2
b=3
echo $(($a + $b * 3 - 7))

Логические операторы:
-z # строка пуста
-n # строка не пуста
=, (==) # строки равны
!= # строки неравны
-eq # равно
-ne # неравно
-lt,(< ) # меньше
-le,(<=) # меньше или равно
-gt,(>) #больше
-ge,(>=) #больше или равно
! #отрицание логического выражения
-a,(&&) #логическое «И»
-o,(||) # логическое «ИЛИ»

Конструкция if elif else:

#!/bin/bash
a=6
if [ $a -eq 5 ]
then
  echo "a is 5"
elif [ $a -eq 6 ]
then
  echo "a is 6"
else
  echo "a is not 5 and 6"
fi

Выполнение команды из скрипта:
#!/bin/bash
me=$(pwd)
echo $me

Цикл while:
#!/bin/bash
a=0;
while [ "$a" -le 5 ]; do
  echo "value of a: $a"
  a=$(expr $a + 1)
done

Цикл until обратный while по логике:
#!/bin/bash
a=3
until [ $a -ge 6 ]; do
  echo "value of a: $a"
  a=$(expr $a + 1)
done

Цикл for:
#!/bin/bash
for a in 1 2 3 4 5 6 7 8 9; do
  if [ $a -eq 5 ]
  then
    echo "5 detected!!!"
  fi
done

Конструкция case:
#!/bin/bash
a=3
case $a in
1) echo "a is 1"
;;
2) echo "a is 2"
;;
*) echo "a is not 1 and 2"
;;
esac

Ввод пользователя:
#!/bin/bash
echo -n "Ready to you: "
read a
echo $a

Функции:
#!/bin/bash
func1()
{
  echo "in func"
}

func1

func2()
{
  echo "arg is $1"
}

func2 2

 
Массивы
 
#Задать массив:
Linux[0]='Debian'
Linux[1]='Centos'
 
#Или:
declare -a Linux=('Debian' 'Centos');
 
#Или:
Linux=(Debian Centos)
 
#Вывести длину массива или длину элемента ${#}:
echo ${#Linux[@]}
echo ${#Linux[1]}
 
#Вывести все элементы
echo ${Linux[@]}
 
#Вывести элементы в диапазоне с 0 по 2:
echo ${Linux[@]:0:2}
 
#Заменить все символы в выводе:
echo ${Linux[@]//e/E}
 
#Перебор массива
for i in ${Linux[@]}
do
echo $i
done
 
#Удалим элемент массива:
unset Linux[1]
 
#Добавить в конец элемент в массив:
Linux+=(Ubuntu)
 
#Добавить по позиции элемент в массив:
Linux+=([1]=Centos)
 
#Сохранить все элементы в выводе команды в массив:
Linux=( $(ls /) )

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru