Linux подстановки и экранирование (шпаргалка-конспект)

  linux, Uncategorized, шпаргалка

Когда в командной строке LInux мы вводим какие-то команды и аргументы, весь вводимый текст предварительно обрабатывается оболочкой, в частности, выполняется Подстановка значений в различные выражения. Групповые символы- пример подстановки, но есть также целый синтаксис, с помощью которого подстановкой можно управлять.

 

Подстановка пути

 

(суть команды echo в том, чтобы просто вывести в консоль переданные  аргументы, она удобна для проверки интерпретации оболочкой аргументов команд)

echo */usr*

echo ~

echo ~username

echo [[:lower:]]*

 

echo .[!.]&*

Ls -d .[!.]&* – вывести все скрытые файлы

 

Подстановка арифм выражений

echo $(выражение)

echo $((2+2))

+  –   * /  % **    (** – степень) (/ – целочисленное деление)

 

Выражения могут содержать вложенные

echo  $($(2+2)-3)

 

Подстановка фигурных скобок

создает несколько текстовых строк из шаблона

echo some-{a, b , c}-thing

some – преамбула, thing – эпилог

some-a-thing some-b-thing some-c-thing

 

echo {1..5}

echo {Z-A}

 

echo {A{1,2},B{3,4}}

A1 A2 B3 B4

 

УДОБНО!! – Пачками создавать файлы и каталоги

mkdir {2017..2020}-{1..12}-{1..31}

 

Подстановка параметров

echo $USER

(при ошибке в имени переменной не выводится ошибка, но пустая строка)

 

Вывести список всех доступных переменных

printenv | less

 

Подстановка команд

Поток вывода команд, как аргумент для других команд

echo $(ls)

 

ls -l $(which someinterestingcomand) – получить информацию о команде не зная пути к ней

 

Можно использовать конвеер внутри

file $(ls /usr/bin/* | grep zip)

Экранирование

В двойных кавычках “ “ все кроме $ и \  интерпретируется как обычные символы, пробелы и переносы между слов также не будут считаться отдельными аргументами, а одним, тем что заключен в кавычки

Одиночные кавычки подавляют все подстановки, даже $ и \

 

\ – экранирует один символ

источник
книга

LEAVE A COMMENT