Syntax highlighting of
linux/bash
[TOC]
# Bash Scripting
[Linux Wiki](https://moin.onrails.ru/Linux%20Wiki)
## Статьи
[BASH, основы навигации](https://habrahabr.ru/post/99041/)
[Управление файлами и директориями](https://habrahabr.ru/post/99291/)
[Ссылки, а также удаление файлов и директорий](https://habrahabr.ru/post/99653/)
[Glob-подстановки](https://habrahabr.ru/post/99827/)
[Advanced Bash Scripting](http://www.tldp.org/LDP/abs/html/)
[Цикл статей на habr](https://habr.com/ru/company/ruvds/blog/325522/)
[Книга](http://rus-linux.net/MyLDP/BOOKS/abs-guide/flat/abs-book.html)
[Colors and formatting](https://misc.flogisoft.com/bash/tip_colors_and_formatting)
## .bashrc
```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}')"
```
## Recipes
### Script Example
Небольшой сценарий - псевдоним
Создаем файл `foo.sh`
```bash
#!/usr/bin/env bash
# комментарий
command arg1 arg2 arg3 "$@"
```
Назначаем режим исполнения
```bash
chmod 755 foo.sh
```
Запускаем
```bash
foo.sh arg4 arg5
#=> command arg1 arg2 arg3 arg4 arg5
```
### Substring
```bash
FOO=release-1.2.3
echo ${FOO#release-}
#=> 1.2.3
```
### Change String
```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
```
### Existing
```bash
export FOO="123"
if [[ $FOO ]]; then echo 'foo is exists'; else echo 'foo blank'; fi
#=> foo is exists
unset FOO
if [[ $FOO ]]; then echo 'foo is exists'; else echo 'foo blank'; fi
#=> foo blank
export FOO=""
if [[ $FOO ]]; then echo 'foo is exists'; else echo 'foo blank'; fi
#=> foo blank
```
### Join search result
```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
```
> Written with [StackEdit](https://stackedit.io/).