📄 refcards.html
字号:
ALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${var:-DEFAULT}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">If <TTCLASS="PARAMETER"><I>var</I></TT> not set or is empty, evaluate expression as <TTCLASS="PARAMETER"><I>$DEFAULT</I></TT> *</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${var=DEFAULT}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">If <TTCLASS="PARAMETER"><I>var</I></TT> not set, evaluate expression as <TTCLASS="PARAMETER"><I>$DEFAULT</I></TT> *</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${var:=DEFAULT}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">If <TTCLASS="PARAMETER"><I>var</I></TT> not set, evaluate expression as <TTCLASS="PARAMETER"><I>$DEFAULT</I></TT> *</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${var+OTHER}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">If <TTCLASS="PARAMETER"><I>var</I></TT> set, evaluate expression as <TTCLASS="PARAMETER"><I>$OTHER</I></TT>, otherwise as null string</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${var:+OTHER}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">If <TTCLASS="PARAMETER"><I>var</I></TT> set, evaluate expression as <TTCLASS="PARAMETER"><I>$OTHER</I></TT>, otherwise as null string</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${var?ERR_MSG}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">If <TTCLASS="PARAMETER"><I>var</I></TT> not set, print <TTCLASS="PARAMETER"><I>$ERR_MSG</I></TT> *</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${var:?ERR_MSG}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">If <TTCLASS="PARAMETER"><I>var</I></TT> not set, print <TTCLASS="PARAMETER"><I>$ERR_MSG</I></TT> *</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${!varprefix*}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Matches all previously declared variables beginning with <TTCLASS="PARAMETER"><I>varprefix</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${!varprefix@}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Matches all previously declared variables beginning with <TTCLASS="PARAMETER"><I>varprefix</I></TT></TD></TR></TBODY></TABLE><HR></DIV><P><BCLASS="COMMAND">*</B> Of course if <TTCLASS="PARAMETER"><I>var</I></TT> <ICLASS="EMPHASIS">is</I> set, evaluate the expression as <TTCLASS="PARAMETER"><I>$var</I></TT>.</P><DIVCLASS="TABLE"><HR><ANAME="AEN17163"></A><P><B>Table B-5. String Operations</B></P><TABLEBORDER="1"CLASS="CALSTABLE"><THEAD><TR><THALIGN="LEFT"VALIGN="TOP">Expression</TH><THALIGN="LEFT"VALIGN="TOP">Meaning</TH></TR></THEAD><TBODY><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${#string}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Length of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string:position}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Extract substring from <TTCLASS="PARAMETER"><I>$string</I></TT> at <TTCLASS="PARAMETER"><I>$position</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string:position:length}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Extract <TTCLASS="PARAMETER"><I>$length</I></TT> characters substring from <TTCLASS="PARAMETER"><I>$string</I></TT> at <TTCLASS="PARAMETER"><I>$position</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string#substring}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Strip shortest match of <TTCLASS="PARAMETER"><I>$substring</I></TT> from front of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string##substring}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Strip longest match of <TTCLASS="PARAMETER"><I>$substring</I></TT> from front of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string%substring}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Strip shortest match of <TTCLASS="PARAMETER"><I>$substring</I></TT> from back of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string%%substring}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Strip longest match of <TTCLASS="PARAMETER"><I>$substring</I></TT> from back of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string/substring/replacement}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Replace first match of <TTCLASS="PARAMETER"><I>$substring</I></TT> with <TTCLASS="PARAMETER"><I>$replacement</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string//substring/replacement}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Replace <ICLASS="EMPHASIS">all</I> matches of <TTCLASS="PARAMETER"><I>$substring</I></TT> with <TTCLASS="PARAMETER"><I>$replacement</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string/#substring/replacement}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">If <TTCLASS="PARAMETER"><I>$substring</I></TT> matches <ICLASS="EMPHASIS">front</I> end of <TTCLASS="PARAMETER"><I>$string</I></TT>, substitute <TTCLASS="PARAMETER"><I>$replacement</I></TT> for <TTCLASS="PARAMETER"><I>$substring</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${string/%substring/replacement}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">If <TTCLASS="PARAMETER"><I>$substring</I></TT> matches <ICLASS="EMPHASIS">back</I> end of <TTCLASS="PARAMETER"><I>$string</I></TT>, substitute <TTCLASS="PARAMETER"><I>$replacement</I></TT> for <TTCLASS="PARAMETER"><I>$substring</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">expr match "$string" '$substring'</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Length of matching <TTCLASS="PARAMETER"><I>$substring</I></TT>* at beginning of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">expr "$string" : '$substring'</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Length of matching <TTCLASS="PARAMETER"><I>$substring</I></TT>* at beginning of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">expr index "$string" $substring</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Numerical position in <TTCLASS="PARAMETER"><I>$string</I></TT> of first character in <TTCLASS="PARAMETER"><I>$substring</I></TT> that matches</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">expr substr $string $position $length</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Extract <TTCLASS="PARAMETER"><I>$length</I></TT> characters from <TTCLASS="PARAMETER"><I>$string</I></TT> starting at <TTCLASS="PARAMETER"><I>$position</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">expr match "$string" '\($substring\)'</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Extract <TTCLASS="PARAMETER"><I>$substring</I></TT>* at beginning of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">expr "$string" : '\($substring\)'</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Extract <TTCLASS="PARAMETER"><I>$substring</I></TT>* at beginning of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">expr match "$string" '.*\($substring\)'</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Extract <TTCLASS="PARAMETER"><I>$substring</I></TT>* at end of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">expr "$string" : '.*\($substring\)'</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Extract <TTCLASS="PARAMETER"><I>$substring</I></TT>* at end of <TTCLASS="PARAMETER"><I>$string</I></TT></TD></TR></TBODY></TABLE><HR></DIV><P><BCLASS="COMMAND">*</B> Where <TTCLASS="PARAMETER"><I>$substring</I></TT> is a <ICLASS="EMPHASIS">regular expression</I>.</P><DIVCLASS="TABLE"><HR><ANAME="AEN17312"></A><P><B>Table B-6. Miscellaneous Constructs</B></P><TABLEBORDER="1"CLASS="CALSTABLE"><THEAD><TR><THALIGN="LEFT"VALIGN="TOP">Expression</TH><THALIGN="LEFT"VALIGN="TOP">Interpretation</TH></TR></THEAD><TBODY><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><ICLASS="EMPHASIS">Brackets</I></TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">if [ CONDITION ]</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Test construct</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">if [[ CONDITION ]]</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Extended test construct</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">Array[1]=element1</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Array initialization</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION"> [a-z]</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Range of characters within a <AHREF="regexp.html#REGEXREF">Regular Expression</A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><ICLASS="EMPHASIS">Curly Brackets</I></TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${variable}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Parameter substitution</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">${!variable}</TT></TD><TDALIGN="LEFT"VALIGN="TOP"><AHREF="ivr.html#IVRREF">Indirect variable reference</A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">{ command1; command2 }</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Block of code</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">{string1,string2,string3,...}</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Brace expansion</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><ICLASS="EMPHASIS">Parentheses</I></TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">( command1; command2 )</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Command group executed within a <AHREF="subshells.html#SUBSHELLSREF">subshell</A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">Array=(element1 element2 element3)</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Array initialization</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">result=$(COMMAND)</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Execute command in subshell and assign result to variable</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">>(COMMAND)</TT></TD><TDALIGN="LEFT"VALIGN="TOP"><AHREF="process-sub.html#PROCESSSUBREF">Process substitution</A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION"><(COMMAND)</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Process substitution</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><ICLASS="EMPHASIS">Double Parentheses</I></TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">(( var = 78 ))</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Integer arithmetic</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">var=$(( 20 + 5 ))</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Integer arithmetic, with variable assignment</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><ICLASS="EMPHASIS">Quoting</I></TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">"$variable"</TT></TD><TDALIGN="LEFT"VALIGN="TOP">"Weak" quoting</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">'string'</TT></TD><TDALIGN="LEFT"VALIGN="TOP">"Strong" quoting</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"> </TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><ICLASS="EMPHASIS">Back Quotes</I></TD><TDALIGN="LEFT"VALIGN="TOP"> </TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">result=`COMMAND`</TT></TD><TDALIGN="LEFT"VALIGN="TOP">Execute command in subshell and assign result to variable</TD></TR></TBODY></TABLE><HR></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLEWIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="contributed-scripts.html">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="sedawk.html">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Contributed Scripts</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"> </TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">A Sed and Awk Micro-Primer</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -