Syntax highlighting of linux/bash
<<TableOfContents()>> = Bash Scripting = == Статьи == [[https://habrahabr.ru/post/99041/|BASH, основы навигации|class=" moin-https"]] [[https://habrahabr.ru/post/99291/|Управление файлами и директориями|class=" moin-https"]] [[https://habrahabr.ru/post/99653/|Ссылки, а также удаление файлов и директорий|class=" moin-https"]] [[https://habrahabr.ru/post/99827/|Glob-подстановки|class=" moin-https"]] [[http://www.tldp.org/LDP/abs/html/|Advanced Bash Scripting|class=" moin-http"]] [[https://habr.com/ru/company/ruvds/blog/325522/|Цикл статей на habr|class=" moin-https"]] [[http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html|Книга|class=" moin-http"]] [[https://misc.flogisoft.com/bash/tip_colors_and_formatting|Colors and formatting|class=" moin-https"]] == .bashrc == {{{#!highlight bash alias is='docker images' alias cs='docker ps' alias csa='docker ps -a' alias rmcs='docker rm $(docker ps -a -q)' alias rmis="docker rmi $(docker images | grep '<none>' | awk '{print $3}')" }}} == test == [[https://tokmakov.msk.ru/blog/item/50|источник]] Предназначена для проверки типа файла и сравнения чисел и строк. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости от вычисления выражения. Выражения могут быть как унарными, так и бинарными. '''Проверка типа файла''' {{{#!highlight bash test expression # test -d file — истина, если file существует и является каталогом # . -e file — истина, если file существует # . -f file — истина, если file существует и является обычным файлом # . -r file — истина, если file существует и доступен для чтения # . -s file — истина, если file существует и имеет размер больше, чем ноль # . -w file — истина, если file существует и доступен для записи # . -x file — истина, если file существует и доступен для выполнения # . -L file — истина, если file существует и является символьной ссылкой # . file1 -nt file2 — истина, если file1 новее (дата модификации), чем file2 # . file1 -ot file2 — истина, если file1 старее, чем file2 if [ -f "$HOME/.bashrc" ]; then echo "Файл существует!" else echo "Файл не существует!" fi }}} '''Сравнение строк''' {{{#!highlight bash # . -z string — истина, если длина string равна нулю # . -n string — истина, если длина string не ноль # . string1 = string2 — истина, если строки равны # . string1 != string2 — истина, если строки не равны }}} '''Сравнение целых чисел''' {{{#!highlight bash # . число1 -eq число2 — истина, если число1 равно число2 # . число1 -gt число2 — истина, если число1 больше число2 # . число1 -ge число2 — истина, если число1 больше или равно число2 # . число1 -lt число2 — истина, если число1 меньше число2 # . число1 -le число2 — истина, если число1 меньше или равно число2 # . число1 -ne число2 — истина, если число1 не равно число2 if [ 3 -lt 6 ]; then echo "Истина" else echo "Ложь" fi }}} '''Операции AND и OR''' {{{#!highlight bash # . expr1 -a expr2 — истина, если оба выражения expr1 и expr2 истина (операция AND) # . expr1 -o expr2 — истина, если хотя бы одно из выражений expr1 или expr2 истина (операция OR) # . ! expr — истина, если выражение expr ложно }}} == Recipes == === Script Example === Небольшой сценарий - псевдоним Создаем файл `foo.sh` {{{#!highlight bash #!/usr/bin/env bash # комментарий command arg1 arg2 arg3 "$@" }}} Назначаем режим исполнения {{{#!highlight bash chmod 755 foo.sh }}} Запускаем {{{#!highlight bash foo.sh arg4 arg5 #=> command arg1 arg2 arg3 arg4 arg5 }}} === Substring === {{{#!highlight bash FOO=release-1.2.3 echo ${FOO#release-} #=> 1.2.3 }}} === Change String === {{{#!highlight bash export SRC_FILE=kube-linter/config.yaml export ENCODED_SRC_FILE=$(echo $SRC_FILE | awk '{gsub("/", "%2F"); print}' | awk '{gsub("\.", "%2E"); print}') echo $ENCODED_SRC_FILE # kube-linter%2Fconfig%2Eyaml }}} === Join search result === {{{#!highlight bash export FOO=$(find . -name 'jacoco*.xml' | paste -s -d ',' -) echo $FOO # ./calc-impl/build/reports/jacoco/test/jacocoTestReport.xml,./calc-api/build/reports/jacoco/test/jacocoTestReport.xml export BAR=$(find . -not -regex '.*/tmp/.*' -name '*.jar' | paste -s -d ',' -) echo $BAR # ./calc-impl/build/libs/calc-impl.jar,./calc-library/build/libs/calc-library.jar,./buildSrc/build/libs/buildSrc.jar,./calc-api/build/libs/calc-api.jar }}}
