ar
Feedback
BashMaster

BashMaster

الذهاب إلى القناة على Telegram

Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help

إظهار المزيد
8 734
المشتركون
+124 ساعات
+47 أيام
+13430 أيام
أرشيف المشاركات
Базовая шпаргалка по Bash (CLI) 🔨 bash_help
Базовая шпаргалка по Bash (CLI) 🔨 bash_help

Обработка содержимого файла Чаще всего вложенные циклы используют для обработки файлов. Так, внешний цикл занимается перебором строк файла, а внутренний уже работает с каждой строкой. Такой подход можно использовать при обработке файлов формата CSV, или любых подобных файлов, записывая, по мере надобности, в переменную окружения IFS символ-разделитель. IFS=$'\n' for entry in $(cat /etc/passwd) do echo "Values in $entry –" IFS=: for value in $entry do echo " $value" done done

Вложенные циклы В теле цикла можно использовать любые команды, в том числе — запускать другие циклы. Такие конструкции называют вложенными циклами. for (( a = 1; a <= 3; a++ )) do echo "Start $a:" for (( b = 1; b <= 3; b++ )) do echo " Inner loop: $b" done done

Посты про инфобезопасность в нашем отдельном канале: https://t.me/+J34Lc_hJnb02ZmRi

Цикл while В цикле можно проверять условие и выполнять тело цикла, пока условие возвращает ноль. Когда условие вернет ненулевое значение, цикл остановится. var1=5 while [ $var1 -gt 0 ] do echo $var1 var1=$[ $var1 - 1 ] done

Циклы for в стиле C В bash-скриптах можно использовать циклы for, описание которых выглядит очень похожим на циклы в стиле C, правда, без некоторых отличий тут не обошлось. for (( i=1; i <= 10; i++ )) do echo "number is $i" done

Циклы for Циклы for в оболочке bash позволяют перебирать последовательности значений. Они имеют следующую структуру:
for var in list
do
команды
done

В каждой итерации цикла значение из списка присваивается переменной var. Цикл выполняется для каждого элемента списка по порядку.

Перебор сложных значений В списке, использованном при инициализации цикла for, могут содержаться не только простые строки, состоящие из одного слова, но и целые фразы, в которые входят несколько слов и знаков препинания. for var in first "the second" "the third" "I’ll do it" do echo "This is: $var" done

Перебор простых значений Пожалуй, самый простой пример цикла for в bash-скриптах — это перебор списка простых значений. Хорошо видно, что в переменную $var последовательно попадают элементы из списка. Происходит так до тех пор, пока цикл не дойдёт до последнего из них. for var in first second third fourth fifth do echo The $var item done

Обход файлов, содержащихся в директории Один из самых распространённых вариантов использования циклов for в bash-скриптах заключается в обходе файлов, находящихся в некоей директории, и в обработке этих файлов. Например, вот как можно вывести список файлов и папок: for file in /home/likegeeks/* do if [ -d "$file" ] then echo "$file is a directory" elif [ -f "$file" ] then echo "$file is a file" fi done

Сравнение строк str1 = str2 Проверяет строки на равенство, возвращает истину, если строки идентичны. str1 != str2 Возвращает истину, если строки не идентичны. str1 < str2 Возвращает истину, если str1 меньше, чем str2. str1 > str2 Возвращает истину, если str1 больше, чем str2. -n str1 Возвращает истину, если длина str1 больше нуля. -z str1 Возвращает истину, если длина str1 равна нулю. user ="likegeeks" if [$user = $USER] then echo "The user $user is the current logged in user" fi

Проверки файлов -d file Проверяет, существует ли файл, и является ли он директорией. -e file Проверяет, существует ли файл. -f file Проверяет, существует ли файл, и является ли он файлом. -r file Проверяет, существует ли файл, и доступен ли он для чтения. -s file Проверяет, существует ли файл, и не является ли он пустым. -w file Проверяет, существует ли файл, и доступен ли он для записи. -x file Проверяет, существует ли файл, и является ли он исполняемым. file1 -nt file2 Проверяет, новее ли file1, чем file2. file1 -ot file2 Проверяет, старше ли file1, чем file2. -O file Проверяет, существует ли файл, и является ли его владельцем текущий пользователь. -G file Проверяет, существует ли файл, и соответствует ли его идентификатор группы идентификатору группы текущего пользователя. if [ -d $mydir ] then echo "The $mydir directory exists" cd $ mydir ls else echo "The $mydir directory does not exist" fi

Математические операции Для выполнения математических операций в файле скрипта можно использовать конструкцию вида $((a+b)) var1=$(( 5 + 5 )) echo $var1 var2=$(( $var1 * 2 )) echo $var2

Управляющая конструкция if-then Управление потоком исполнения команд может быть достигнуто с помощью конструкции if-then. Например, можно использовать ее для поиска пользователя в /etc/passwd и, в случае успешного нахождения, вывести сообщение о его существовании. user=likegeeks if grep $user /etc/passwd then echo "The user $user Exists" fi

Сравнение чисел В скриптах можно сравнивать числовые значения. Ниже приведён список соответствующих команд. n1 -eq n2 Возвращает истинное значение, если n1 равно n2. n1 -ge n2 Возвращает истинное значение, если n1 больше или равно n2. n1 -gt n2 Возвращает истинное значение, если n1 больше n2. n1 -le n2 Возвращает истинное значение, если n1 меньше или равно n2. n1 -lt n2 Возвращает истинное значение, если n1 меньше n2. n1 -ne n2 Возвращает истинное значение, если n1 не равно n2. val1=6 if [ $val1 -gt 5 ] then echo "The test value $val1 is greater than 5" else echo "The test value $val1 is not greater than 5" fi

Подстановка команд Bash-скрипты позволяют извлекать информацию из вывода команд и сохранять её в переменных для дальнейшего использования. Сделать это можно двумя способами: • С помощью значка обратного апострофа «`» • С помощью конструкции $() mydir=$(pwd) echo $mydir

Telegram бот с бесплатными и безлимитными запросами chatGPT: @this_gpt_bot

Пользовательские переменные Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария. Как и в случае с системными переменными, к пользовательским переменным можно обращаться, используя знак доллара: grade=5 person="Adam" echo "$person is a good boy, he is in grade $grade"

Установка разрешений для файла сценария Сохранив файл bash-скрипта, необходимо сделать этот файл исполняемым, иначе, попытавшись его запустить, вы столкнётесь с ошибкой Permission denied. chmod +x ./myscript ./myscript

Уроки Linux для начинающих / Изучение Linux Ubuntu и Bash с нуля В этом плейлисте вы научитесь устанавливать VirtualBox с Ubu
Уроки Linux для начинающих / Изучение Linux Ubuntu и Bash с нуля В этом плейлисте вы научитесь устанавливать VirtualBox с Ubuntu, изучите основы пользовательского интерфейса и командной строки Linux, научитесь работать с файлами и директориями, изучите пакетный менеджер, работу с памятью, сжатие файлов и редакторы текста, разберёте команды поиска FIND и GREP. 📹 Плейлист YouTube Если вы уже имеете эти навыки и знания, поделитесь ими с вашими друзьями ;)