Меню сайта
   Главная   
   Обо мне   
   Статьи   
   Дневник   
   Картинки   
   Файлы   
   Форум   
   Гостевая книга   

Категории раздела
Настольные игры [20]
Мои статьи [18]
Мои интересы [36]
Перепечатки [49]
GNU/Linux [14]
ZX-Spectrum [10]
Субмарины [9]


Каталог статей

Главная » Статьи » GNU/Linux

Bash

ЛУЧШЕЕ СПРАВОЧНОЕ РУКОВОДСТВО:
Mendel Cooper. Advanced Bash-Scripting Guide
Искусство программирования на языке сценариев командной оболочки
тут https://www.opennet.ru/docs/RUS/bash_scripting_guide/

Наглядные примеры: http://krdprog.ru/linux-bash/


bash рулетка
[ $[ $RANDOM % 6 ] == 0 ] && echo dead || echo live!

/ слеш в конце пути -признак каталога.  Два тире -- после команды указывают, что после них ключей нет, и тире не обрабатываются. Например создать файл с тире в имени:
touch -- -a

Построчно считать файл в переменную B
while read A; do B+=$A; done </etc/group
echo $B

Вывести файлы, начинающиеся на s, с расширением БЕЗ букв g или f
ls s*.*[^gf]
Без ^ значит с. Домик это отрицание.

Вывод файлов начинающихся с цифры. в квадратных скобках шаблон диапазона символов.
ls [0-9]*.*

Шаблон выбора расширения по шаблону на каждый символ:
ls *.[jJ][pP][gG]

Вывести последний ErrorLevel
echo $?

Обратный слэш экранирует управляющие символы, выводя их как обычные. В двойных кавычках можно экранировать пробелы, и использовать переменные:
A=Star\ Wars; echo "variable A = $A"

Одинарные кавычки более строгие, экранируют всё, в.т.ч. и переменные:
A=Star\ Wars; echo 'variable A = $A'

Знак доллара принуждает строгое экранирование обрабатывать управляющие символы, например перевод каретки:
echo $'\nword\n'

Оператор сравнения на равенство с выводом кода Errorlevel
test A == B ; echo $?

Когда нужно экранировать лишние символы, фигурные скобки явно указывают границы переменной:
A=Star ; B=Wars ; echo ${A}_$B

Два слеша позволяют редуцировать вывод. Например вывод без пробелов:
a='one two three' ; echo ${a// }


Связанные статьи: нет.   Категория: GNU/Linux | Добавил: harushima (16.07.2017)
Просмотров: 978 | Комментарии: 36 | Рейтинг: 0.0/0 |
Всего комментариев: 361 2 »

23.07.2017 22:01
1 harushima
0  
Узнать код клавиши:

xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

и как это можно использовать:
https://www.linux.org.ru/forum/general/11776554


23.07.2017 22:13
2 harushima
0  
Колисниченко Д. Н. Командная строка Linux и автоматизация рутинных задач.pdf
https://vk.com/doc9273....41ef2ca


23.07.2017 22:16
3 harushima
0  
Вернуться в предыдущую директорию:
cd -


23.07.2017 22:22
4 harushima
0  
Секундомер отсчёт с нуля:

echo '';zero=`date +%s`; echo -n 0; while sleep 1; do echo -ne \\r; expr `date +%s` - $zero | tr -d \\n; done


23.07.2017 23:04
5 harushima
0  
Вывести построчный список из цифр от 01 до 10.
for x in {01..10};do echo $x;done


23.07.2017 23:04
6 harushima
0  
Повторить команду N раз:
for n in {1..5}; do echo "Я НЕ БУДУ КАТАТЬСЯ НА СКЕЙТЕ В КОРИДОРАХ"; done
http://www.shellhacks.com/ru....-v-Bash


23.07.2017 23:05
7 harushima
0  
Бесконечное выполнение скрипта test.py:
while true; do ./test.py; sleep 3; done;

http://debianadmin.ru/beskonechnyj-cikl-na-bash.html


24.07.2017 23:57
8 harushima
0  
Ожидание любой клавиши:
echo -n "Press any key to continue..." && read


11.09.2017 03:07
9 harushima
0  
В bash ctrl+t меняет соседние символы местами, удобно.


07.01.2018 06:04
10 harushima
0  
Калькулятор в bash:
echo $((15+25))

https://habrahabr.ru/post/310566/


07.01.2018 06:22
11 harushima
0  
https://habrahabr.ru/post/310566/
Мы подгружаем в bc математическую библиотеку опцией -l и просим выдать число π с точностью 5000 знаков после запятой.

time echo "scale=5000; 4*a(1)" | bc -l -q


20.05.2018 10:25
12 harushima
0  
Калькулятор в консоли на python:
echo 'print(666*2-200)'|python3


09.08.2018 22:19
13 harushima
0  
Bash-скрипты, часть 3: параметры и ключи командной строки
https://habr.com/company/ruvds/blog/326328/


04.02.2019 01:27
14 harushima
0  
Дата YYYY-MM-DD в консоли:
datev=$(date +%Y-%m-%d);echo $datev


12.02.2020 23:24
15 harushima
0  
Три способа создать сразу несколько каталогов. Перечислением, циклом, диапазоном:
mkdir ./{2010,2011,2012,2013}
mkdir ./$(for x in {2010..2013};do echo $x;done)
mkdir ./{2010..2013}

Таким образом видно, что если числовые каталоги являются диапазоном, то и создавать их следует им же. В противном случае списком, а цикл вообще от лукавого.


13.02.2020 20:18
16 harushima
0  
lalala & — запускает команду в фоне, т.е. управление отдаётся командному интерпретатору (bash, например), а [command] будет выполняться «параллельно».
lalala && — подразумевает, что следующая команда будет выполнена только в том случае, если [command] была выполнена успешна (вернула 0).

КРАТКО:
& = Run in background
&& = Logical AND


29.12.2020 06:19
17 harushima
0  
Mendel Cooper. Advanced Bash-Scripting Guide
Искусство программирования на языке сценариев командной оболочки
Перевод: Андрей Киселев.

https://poplinux.ru/adv-bash/

!!! ОЧЕНЬ хороший учебник с оглавлением!!!


30.12.2020 12:07
18 harushima
0  
Вывести только часть переменной. "с-по", и "начиная с".

a=01234; echo ${a:1:2}
a=01234; echo ${a:3}

9.2. Работа со строками
9.3. Подстановка параметров
https://www.opennet.ru/docs/RUS/bash_scripting_guide/x4462.html
https://www.opennet.ru/docs/RUS/bash_scripting_guide/x4171.html


04.01.2021 08:20
19 harushima
0  
вывести цифры от 10 до 20
seq 10 20

вывести буквы A..Z
for i in {a..z}; do echo -n $i; done


04.01.2021 08:48
20 harushima
0  
Имитировать ввод с клавиатуры:
echo "You can simulate on-screen typing just like in the movies" | pv -qL 10


04.01.2021 09:13
21 harushima
0  
Матрица стайл
tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"


04.01.2021 09:24
22 harushima
0  
Воспроизведение в консоли:
ffplay example.mp3


04.01.2021 09:36
23 harushima
0  
Конвертировать text из ascii в HEX.
echo -n "text" | od -A n -t x1 |sed 's/ /\\x/g'


04.01.2021 10:40
24 harushima
0  
Запись БИНАРНЫХ чисел в bash:
echo $(( 2#01010101 ))

Запись шестнадцатиричных:
printf %x 255

бинарное выводится в десятичное и конвертируется в шестнадцатиричное
printf %x $(( 2#11111111 ))

ссылки:
https://www.opennet.ru/docs/RUS/bash_scripting_guide/c301.html


05.01.2021 11:06
25 harushima
0  
Вывести построчно разделённые пробелами слова:
c="aa bb cc dd ee ff gg"; for x in $c; do echo $x; done;

Тот же результат путём замены " " на \n:
echo $c | tr ' ' '\n'; echo


07.01.2021 04:22
26 harushima
0  
Имитировать набор в реальном времени:

LINE="Wake up, User, The Windows has you..." ; while [[ -n "$LINE" ]] ; do echo -n "${LINE::1}" ; LINE="${LINE:1}" ; sleep 0.1; done ; echo


12.01.2021 03:50
27 harushima
0  
https://www.opennet.ru/docs/RUS/bash_scripting_guide/x4171.html
Извлечение фрагмента "беда" из строки $a
a=пообедал; echo ${a:3:4}


12.01.2021 04:41
28 harushima
0  
Взять отрывок строки с конца:
a=Победа; echo ${a:(-4)}


22.01.2021 09:49
29 harushima
0  
PRINTF

Вывод назначенных справа переменных:
printf "Open issues: %s\nClosed issues: %s\n" "34" "65"

Вывод в hex, dec, oct форматах.
printf "Decimal: %d\nHex: %x\nOctal: %o\n" 100 100 100

Отступить слева 20 символов и напечатать слово, и число:
printf "%20s %d\n" Mark 305

Напечатать число, дополнив его нулями до 8 символов.
printf "%0*d" 8 1111

https://linuxize.com/post/bash-printf-command/


22.01.2021 10:07
30 harushima
0  
Вывести число 254 в бинарном виде:
a=254; echo "obase=2;$a" | bc
echo "obase=2; 254" | bc
bc <<< "obase=2;254"

На первый взгляд лишённая смысла, но полезная конструкция: вывести в бинарном виде записанное в бинарном виде число 254:
echo "obase=2; $(( 2#11111110 ))" | bc

https://stackoverflow.com/questio....version

1-30 31-36
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Авторизация
Анонимный вход:
anonymous / anonymous
Логин:
Пароль:

Поиск

Облако тэгов
JGSDF игрушки Брюнетки Кладбище сайты Ярость Дракулы Древний Египет девушки кошки Cthulhu Вампиры Kitsune Ужас Аркхема инструмент комиксы Lovecraft готика Submarine submarine rc toy Hosting игротека Ужас Аркхэма book uboat мобильная связь го Edgar Poe swf Mansions of Madness Nightmares персоны Synergy linux-hardware bash youtube Storages Python Мастер-рукожоп Магнитофоны Entropy Grub2 loglevel WiFi Beeline ОПСОСЫ sharp939 Аудиокассеты Windows linuxwork Хочуны ImageMagick топБарыг C64c Commodore

Статистика
Яндекс.Метрика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2023
Лучший браузер!
Блокировка рекламы