Russian English German Ukrainian

Компьютерная помощь

(066) 72-00-654     (098) 44-74-068

г. Днепр

ж/м Левобережный-3

bash: Примеры скриптов

Небольшая шпаргалка с примерами bash-скриптов на все случаи жизни. А вдруг когда нибудь пригодится.

Проверка директории, файла.

Скрипт проверки существования файла:

#!/bin/bash
file="./file"
if [ -e $file ]; then
echo "File exists"
else
echo "File does not exists"
fi

Аналогично для проверки существования файла можно использоватьe цикл while. Этот скрипт не будет работать, пока файл существует. Обратите внимание на bash оператор отрицания "!", который отрицает функцию -e.

#!/bin/bash
while [ ! -e myfile ]; do
# Не реагировать, пока файл создан и существует
sleep 1
done

Простое bash-выражение с if/else. Обратите внимание на пробелы в скобках [ и ]! Без этих пробелов, скрипт работать не будет.

#!/bin/bash
directory="./BashScripting"
# bash проверка существования директории
if [ -d $directory ]; then
echo "Directory exists"
else
echo "Directory does not exists"
fi

Определим, существует ли введенный нами пользователь:

#!/bin/bash
read -p "Введите имя пользователя : " USER
if ! grep $USER /etc/passwd
then
echo "$n не существует."
else
echo "$n существует."
fi

Восклицательный знак перед grep $USER /etc/passwd, говорит о том, что условие выполниться если пользователя не существует.

Еще несколько вариантов:

#!/bin/bash
#Проверка существования файла
if ! [ -f /path/to/file ]; then
echo 'No file'
fi
#!/bin/bash
#Проверка существования директории
if ! [ -d /path/directory/ ]; then
echo 'No directory'
fi
#!/bin/bash
#Проверка существования пользователя
grep "username:" /etc/passwd >/dev/null
if [ $? -ne 0 ]; then
echo 'No username found'
fi

Переключатель.

Выражение case является вторым условным выражением поддерживаемым оболочкой. Ключевыми словами здесь являются case и esac. ';;' используется в качестве окончания вариант. Также использует ')', чтобы отделить шаблон от действий.

#!/bin/bash
echo "Enter your option : "
read i;
case $i in
1) ls -l ;;
2) df -h ;;
3) date ;;
4) who ;;
5) pwd ;;
6) exit
esac

Арифметические сравнения.

#!/bin/bash
# объявление целочисленных переменных
NUM1=2
NUM2=2
if [ $NUM1 -eq $NUM2 ]; then
echo "Both Values are equal"
else
echo "Values are NOT equal"
fi
#!/bin/bash
# объявление целочисленных переменных
NUM1=2
NUM2=1
if [ $NUM1 -eq $NUM2 ]; then
echo "Both Values are equal"
else
echo "Values are NOT equal"
fi
#!/bin/bash
# объявление целочисленных переменных
NUM1=2
NUM2=1
if [ $NUM1 -eq $NUM2 ]; then
echo "Both Values are equal"
elif [ $NUM1 -gt $NUM2 ]; then
echo "NUM1 is greater then NUM2"
else
echo "NUM2 is greater then NUM1"
fi

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

#!/bin/bash
#Объявление строки S1
S1="Bash"
#Объявление строки S2
S2="Scripting"
if [ $S1 = $S2 ]; then
echo "Both Strings are equal"
else
echo "Strings are NOT equal"
fi
#!/bin/bash
#Объявление строки S1
S1="Bash"
#Объявление строки S2
S2="Bash"
if [ $S1 = $S2 ]; then
echo "Both Strings are equal"
else
echo "Strings are NOT equal"
fi
  • Сборка ПК для дома и офиса

  • Бесплатная диагностика

  • Гарантия

  • Самые низкие цены