Главные темы ► linux ► shell ► useful ► Язык shell в Linux
Теги: shell

Язык shell в Linux

Регулярные выражения в Linux, язык shell, синтаксис, примеры


    Источники

    [:upper:] - Символы в верхнем регистре
    [^[:upper:]] - Кроме символов в верхнем регистре
    [:digit:] - Десятичные цифры
    [^- [:digit:]\(\)] - Кроме цифр, скобок, дефисов
    Перевод первого символа строки в верхний регистр:

    name=toly; echo $name | cut -c1 | tr '[:lower:]' '[:upper:]' echo 347.22 | cut -d. -f1 #получить значения слева от точки echo 347.22 | cut -d. -f2 #получить значения справа от точки

    Цикл работает пока num больше 5, в теле уменьшается число num:

    num=10; while [ $num -gt 5 ]; do echo $num; num=$(expr $num - 1); done

    #getops необходим для выполнения команды в зависимости от выбранной опции

    while getopts "a:b:" opt; do case $opt in a ) echo "Это опция a" ;; b ) echo "Это опция b" ;; esac done

    #Первый символ num, num без первого символа

    num=-1; echo "${num%${num#?}}"; echo "${num#?}";

    #Оставить в переменной все кроме цифр:

    echo $num | sed "s/[[:digit:]]//g"

    #1. Убрать все символы, кроме точки, 2. Вывод символов слева от точки, 3. Символы справа от точки:

    num=10.5; echo $num | sed 's/[^.]//g'; echo $num | cut -d. -f1; echo ${num#*\.}
    Замена вхождений с помощью утилиты tr

    Замена регистра:

    ~/bash_scripts$ echo "HeLlo" | tr '[:upper:]' '[:lower:]' hello ~/bash_scripts$ echo "HeLlo" | tr '[:lower:]' '[:upper:]' HELLO

    Если year не делится без остатка на 4, тогда...

    ~$ year=20; if [ "$((year % 4))" -ne 0 ] ; then echo echo 1; else echo 0; fi 0

    Разбить дату на день, месяц, год:

    ~$ date=10/07/2022; echo $date | cut -d/ -f1 10 ~$ date=10/07/2022; echo $date | cut -d/ -f2 07 ~$ date=10/07/2022; echo $date | cut -d/ -f3 2022

    Удалить из текста все знаки переноса:

    cat test.txt | tr -d '\n'

    shift сдвигает параметры на одну позицию влево, из первой переменной значение просто отбрасывается, это удобно использовать, когда неизвестно сколько параметров всего и параметры обрабатываются по очереди из первой переменной. Встроенный документ

    bc << EOF $test $* quit EOF

    $OPTIND - это индекс следующего обрабатываемого аргумента which - выводит полный путь до файла скрипта команды

    Перебор аргументов
    #!/bin/bash for arg in "$@" do echo "${PREFIX}: $arg" if [ -f ${arg} ] ; then echo "${arg} is a file" fi #Либо использовать case done

    Если вызвать один сценарий командной оболочки из другого, по умолчанию он будет выполнен в собственной оболочке

    t@x:~$ echo "test=2" >> tinyscript.sh t@x:~$ chmod +x tinyscript.sh t@x:~$ test=1 t@x:~$ ./tinyscript.sh t@x:~$ echo $test 1 t@x:~$

    Если выполнить это сценарий подключением файла с помощью точки идентичной команде source (include в языке C)FD

    . tinyscript.sh

    Таким образом можно подключить библиотечный файл с готовыми функциями, сценариями в один из каталогов перечисленных в окружении PATH
    Для вывода отладочной информации используй bash -x script.sh
    Как вариант, можно использовать set -x перед началом выполнения скрипта и set +x после выполнения скрипта


    Получение случайного числа
    echo $RANDOM
    Вывод директорий из переменной $PATH
    $ IFS=":"; for directory in $PATH ; do echo $directory; done
    Источники
    Последнее изменение: October 10, 2024 05:18


    Редактировать


    test

    2025-12-31 23:09:00 Редактировать

    test

    2025-12-31 23:10:00 Редактировать

    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ
    Loading…
    Loading the web debug toolbar…
    Attempt #