Навыки Резюме:
Строка сравнительные двойные скобки [[]]; сравнительный арифметические одиночные скобки [] - левое пространство вокруг
Арифметические двойные круглые скобки (()), а также выходные команды оболочки скобок () - нет места остались
Быстрый заменить фигурные скобки {} - Оставляйте свободное пространство вокруг
Команда замещение кавычки играет роль в ``
-------------------------------------------------- -------------------------------------------------- ------------
Одиночные круглые скобки ():
Открыть другую группу команд - содержание мелких скобок будут открывать суб-оболочки работают независимо друг от друга; кронштейны точки с запятой соединения, последняя команда не требуется, каждая команда и скобка без пробелов
Получить команду вывод --a = $ (команда), эквивалентно = $ `command`, чтобы получить переменный вывод команды на
Инициализировать массив --array = (ABCD)
Двойные круглые скобки (()):
Пропущено $ знаковой арифметики - для ((я = 0; я <5; я ++)), если (($ я <5)); а = 5; ((а ++)) может быть $ переопределенного 6, множество опорных кронштейнов выражений, разделенных запятыми.
правила языка C работы - $ ((ехр)) ехр в соответствии с правилами языка C операторов, выражений
Ступенчатая в эксплуатацию системы - двоичный, восьмеричная, шестнадцатеричное время вычисления, все выходные данные автоматически преобразуются в десятичный. Такие, как: эхо $ ((16 # 5f)) установлено, что 95 (шестнадцатеричное очередь десятичное)
Одиночные скобки []:
Сравнение строк - = == и!
Целое сравнение - не значит: -GT: больше; -lt: меньше; -eq: равный; -ne
Индекс массива --array [0]
Двойные скобки [[]]:
Сравнение строк - можно поставить на право в качестве модели, а не только строки, такие как [[привет == ад]?] Результат верно. [[]] В строке соответствия или шаблона, без кавычек.
Логические операторы - Сценарий предотвратить множество логических ошибок, таких как, &&, ||, <и> могут присутствовать обычно в операторе [[]] условная структура, но если они присутствуют в [] структуре, это будет дано. Например можно использовать непосредственно, если [[$ а! = 1 && $ а! = 2]], двойные кавычки, если не применимо, по сравнению с, если [$ в -ne 1] && [$ а! = 2] или если [$ а -ne 1 -a $ а! = 2].
Код выхода --bash двойные скобки в выражении в виде единого элемента, и возвращает код состояния выхода.
ЕСЛИ (I $ <. 5) ,
если [-LT-I $. 5] ,
если [-ne. 1 -a $ A $ A! = 2] ,
если [$ A -ne. 1] && [$ A! = 2] ,
если [[$ ! && 1 = А 2 = А $]].!
для в $ I (SEQ 4 0.); делать эхо $ I, DONE
для I 0 в SEQ `4`; делать эхо $ I, DONE
для ((I = 0; я <5; я ++)), делать эхо $ я, DONE
для я в {0..4}, делать эхо $ я; ЗАВЕРШЕННЫЕ
скобки {}:
создать анонимную функцию - не будет открыт новый процесс, остальные переменные в скобках Он по- прежнему может быть использован. Отдельно по команде с запятой в скобках, последний должен также иметь точку с запятой. {} Должно быть пространство между первой командой и левой скобкой.
特殊 替换 - $ {вар: -string}, $ {вар: + строка} $ {переменная = строка} $ {вар :? Строка}
① $ {вар: -string} и $ {Var: = строка}: Если переменная переменная пуста, командная строка со строкой, чтобы заменить $ {вар: -string}, в противном случае переменная переменная не является пустым, то заменяется значением вар $ {Var: -string}; разница составляет $ {переменная: = строка} переменная обычно используется для определения того задания, не присвоить значение по умолчанию на вар.
② $ {вар: + строка}: правила замены и вопреки вышесказанному, то есть только тогда, когда переменная не является пустым, когда он заменяется строкой, или если не заменить вар пустой заменяется значением переменной вар, то есть нуль , (Так как переменная переменная является пустой, так что эти два утверждения эквивалентны)
③ $ {? Вар: строка}: Заменить правило: если переменные переменный не является пустым, значение вара заменяется на $ {вара :? строка}; вар Если переменная пуста, добавьте строку выводится в стандартные ошибки и выйти из сценария. Мы можем использовать эту функцию, чтобы проверить, если значение переменной.
Примечание: В приведенной выше структуре, пять альтернативная строка не обязательно является постоянной величиной, значение другой переменной доступны или командует выход.
В качестве альтернативы соответствующего шаблона - $ {вар% шаблон}, $ {вар %% шаблон}, {$ вар # шаблон}, $ {вар ## паттерн}
# Удаляется с левым (на левой стороне клавиатуры # в $);%, чтобы удалить правую сторону (на правой стороне клавиатура% от $), а в одном символе #% является минимальным согласованием, два символа является одинаковым максимальным соответствием.
Первый режим: $ {переменная шаблона%}. Найти в переменной оболочке, конец шаблона, чтобы увидеть, если это данный шаблон, и если да, то удалите право переменного кратчайшего шаблона согласования
Второй режим: $ {переменная %% шаблон}, когда эта модель, переменные оболочки в поиске, чтобы увидеть, является ли это конец шаблона к шаблону, если он есть, переменный в правой части самого длинного шаблона согласования удаляются
Третья модель: $ {переменной # шаблон} Когда этот режим, переменный в оболочке поиске, чтобы увидеть, будет ли это начало шаблон для рисунка, если это так, удаляя переменный левый кратчайший шаблон согласования
Четвертый режим: $ {переменная ## модели} Когда этот режим, переменная в оболочке поиска, чтобы увидеть, является ли это конец шаблона к шаблону, и если да, то удаление переменной левого длинного шаблона согласования
Эти четыре режима не будет изменять значение переменной, которая только использовать символ * в сопоставлении с образцом, и %%%, и # ## имеют различия. Структура шаблон поддержки подстановочная * означает ноль или более любые символы ,? Представляет только один матч любого символа, [...], который соответствует символам в скобках [! ...] сказал, что они не совпадающие скобки внутри персонажей.
TestCase вар = #
# $ вар эхо
TestCase
# эхо вар {$ E% *} S
testca
# эхо $ вар
TestCase
# Эхо $ {вар %% S *} E
TE
# Эхо $ {вар #? E}
stcase
# Эхо $ {?} ## вар E
stcase
# эхо $ E} {вар * ##
# ## * вар эхо $ {S}
E
# ## Тест эхо {уаг} $
Case
извлечения строки и замены - $ {вар: число}, $ {вар: num1 : пит2}, {$ вар / образец / шаблон}, $ {вар // шаблон / шаблон}
первый режим: $ {переменная: число}, оболочка извлечение NUM в вар символ конца всех персонажей. Если Num положительное число, 0 слева, если Num является отрицательным, извлечение строки начинается с правой стороны , но должен использовать цифровой или пробел после двоеточия или целых пит скобках, например, $ {вар: -2} , $ {Var: 1-3} или {$ Var: (- 2) }.
Второй режим: $ {Var: num1: num2}, num1 является положение, длина пит2. Это указывает на начало добычи из позиции num1 длины $ $ $ вар строка num2 подстроки. Вы не можете быть отрицательным.
Третья модель: $ {вар / шаблон / шаблон} показывает шаблон вар заменен на другой соответствующую первый шаблон строки.
Четвертый режим: $ {вар // шаблон / шаблон} будет заменен другим рисунок, представленный варом все соответствует строке шаблона.
[Корень @ CentOS ~] # вар = / Home / CentOS
[корень @ CentOS ~] # эхо $ вар
/ Home / CentOS
[корень @ CentOS ~] # Эхо $ {вар :. 5}
/ CentOS
[корень @ CentOS ~] # $ {вар эхо:} -6
CentOS
[CentOS корень @ ~] # эхо $ {вар: (- 6.)}
CentOS
[CentOS корень @ ~] # эхо $ {вар :. 1:}. 4
Начало
[CentOS корень @ ~] эхо $ {вар # / O / H}
/ hhme / CentOS
[CentOS корень @ ~] # эхо $ {вар // O / H}
/ hhme / cenths
пара} и {(), символ в скобках перенаправления команда влияет только на этот участок, и за пределами символа скобки перенаправление затрагивает все команды в скобках.
-------------------------------------------------- -------------------------------------------------- ------------
Кронштейны после символа $
(1) $ {а} значения переменной, без скобок неоднозначности может быть опущен.
(2) $ (CMD) замена команды и `cmd` тот же эффект, результатом является командная оболочка CMD теряется, слишком Shell версия не поддерживает некоторые $ () формы подстановки команд, таких как Tcsh.
(3) $ ((выражение)) и тот же `exprexpression` эффект, расчетные значения математического выражения ехр, где ехр они отвечают правилам эксплуатации на языке С, или даже тройного оператора могут быть рассчитаны и логические выражения.
Воспроизводится в: https: //www.cnblogs.com/weizhixu/p/10120420.html