Кавычки, обрамляющие строку, предотвращают интерпретацию специальных символов, которые могут находиться в строке.
Символ называется "специальным", если он не только означает самого себя но и имеет дополнительное значение для программ, например символ шаблона -- *.
Двойные кавычки отменяют все спец символы, кроме $ и \.
Одиночные кавычки (' '), по своему действию схожи с двойными кавычками, но не разрешают внутри себя подстановку переменных, интерпретируя символ "$", как обычный символ. Любой символ внутри одинарных кавычек, за исключением символа одинарной кавычки, воспринимается как обычный символ.
Одинарные кавычки являются более строгим вариантом двойных кавычек.
Многие программы в передаваемых им параметрах, используют специальные символы, в этом случае нужно заключать их в кавычки, что-бы системная оболочка их не трогала, оставляя для вызываемой программы.
Кроме вышесказанного, кавычки используются для предотвращения разбиения строки на слова:
this is a variable # а здесь одну строку
При обращении к переменным, желательно использовать двойные кавычки. Это позволит не интерпретировать специальные символы, содержащиеся в именах переменных, за исключением символов $
Очень часто символ экранирования \ ( обратный слэш ), используется для ввода из командной строки многострочных команд, экранируя символ новой строки:
Вообще если одна из строк многострочной команды заканчивается символом конвейера " | ", экранировать символ новой строки не обязательно, это просто считается хорошим тоном, и применимо только к оболочке bash
Символ называется "специальным", если он не только означает самого себя но и имеет дополнительное значение для программ, например символ шаблона -- *.
Двойные кавычки отменяют все спец символы, кроме $ и \.
Одиночные кавычки (' '), по своему действию схожи с двойными кавычками, но не разрешают внутри себя подстановку переменных, интерпретируя символ "$", как обычный символ. Любой символ внутри одинарных кавычек, за исключением символа одинарной кавычки, воспринимается как обычный символ.
Одинарные кавычки являются более строгим вариантом двойных кавычек.
Многие программы в передаваемых им параметрах, используют специальные символы, в этом случае нужно заключать их в кавычки, что-бы системная оболочка их не трогала, оставляя для вызываемой программы.
grep '[Tt]*' ./[Bb]*
Кроме вышесказанного, кавычки используются для предотвращения разбиения строки на слова:
var="is a variable" echo this $var # здесь команде передается 4 аргумента echo "this $var" # а тут одинthis is a variable # здесь на выходе мы получаем 4 слова
this is a variable # а здесь одну строку
При обращении к переменным, желательно использовать двойные кавычки. Это позволит не интерпретировать специальные символы, содержащиеся в именах переменных, за исключением символов $
# ls /etc\ /rootвернет /etc/root
Очень часто символ экранирования \ ( обратный слэш ), используется для ввода из командной строки многострочных команд, экранируя символ новой строки:
# ls /etc\\n/rootвернет /etc/root
Вообще если одна из строк многострочной команды заканчивается символом конвейера " | ", экранировать символ новой строки не обязательно, это просто считается хорошим тоном, и применимо только к оболочке bash
Комментариев нет:
Отправить комментарий