Сценарий оболочки в роли различных типов скобок (Резюме)

Оригинальная ссылка: http://www.cnblogs.com/weizhixu/p/10120420.html

Навыки Резюме:

Строка сравнительные двойные скобки [[]]; сравнительный арифметические одиночные скобки [] - левое пространство вокруг

Арифметические двойные круглые скобки (()), а также выходные команды оболочки скобок () - нет места остались

Быстрый заменить фигурные скобки {} - Оставляйте свободное пространство вокруг

Команда замещение кавычки играет роль в ``

 

-------------------------------------------------- -------------------------------------------------- ------------

Одиночные круглые скобки ():

Открыть другую группу команд - содержание мелких скобок будут открывать суб-оболочки работают независимо друг от друга; кронштейны точки с запятой соединения, последняя команда не требуется, каждая команда и скобка без пробелов

Получить команду вывод --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

рекомендация

отblog.csdn.net/weixin_30612769/article/details/94783169