refcards.html
来自「BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版」· HTML 代码 · 共 1,864 行 · 第 1/2 页
HTML
1,864 行
>${var-DEFAULT}</CODE></TD><TD>如果<CODECLASS="PARAMETER">var</CODE>没有被声明, 那么就以<CODECLASS="PARAMETER">$DEFAULT</CODE>作为其值 *</TD></TR><TR><TD><CODECLASS="OPTION">${var:-DEFAULT}</CODE></TD><TD>如果<CODECLASS="PARAMETER">var</CODE>没有被声明, 或者其值为空, 那么就以<CODECLASS="PARAMETER">$DEFAULT</CODE>作为其值 *</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">${var=DEFAULT}</CODE></TD><TD>如果<CODECLASS="PARAMETER">var</CODE>没有被声明, 那么就以<CODECLASS="PARAMETER">$DEFAULT</CODE>作为其值 *</TD></TR><TR><TD><CODECLASS="OPTION">${var:=DEFAULT}</CODE></TD><TD>如果<CODECLASS="PARAMETER">var</CODE>没有被声明, 或者其值为空, 那么就以<CODECLASS="PARAMETER">$DEFAULT</CODE>作为其值 *</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">${var+OTHER}</CODE></TD><TD>如果<CODECLASS="PARAMETER">var</CODE>声明了, 那么其值就是<CODECLASS="PARAMETER">$OTHER</CODE>, 否则就为null字符串</TD></TR><TR><TD><CODECLASS="OPTION">${var:+OTHER}</CODE></TD><TD>如果<CODECLASS="PARAMETER">var</CODE>被设置了, 那么其值就是<CODECLASS="PARAMETER">$OTHER</CODE>, 否则就为null字符串</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">${var?ERR_MSG}</CODE></TD><TD>如果<CODECLASS="PARAMETER">var</CODE>没被声明, 那么就打印<CODECLASS="PARAMETER">$ERR_MSG</CODE> *</TD></TR><TR><TD><CODECLASS="OPTION">${var:?ERR_MSG}</CODE></TD><TD>如果<CODECLASS="PARAMETER">var</CODE>没被设置, 那么就打印<CODECLASS="PARAMETER">$ERR_MSG</CODE> *</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">${!varprefix*}</CODE></TD><TD>匹配之前所有以<CODECLASS="PARAMETER">varprefix</CODE>开头进行声明的变量</TD></TR><TR><TD><CODECLASS="OPTION">${!varprefix@}</CODE></TD><TD>匹配之前所有以<CODECLASS="PARAMETER">varprefix</CODE>开头进行声明的变量</TD></TR></TBODY></TABLE><HR></DIV><P><BCLASS="COMMAND">*</B> 当然, 如果变量<CODECLASS="PARAMETER">var</CODE>已经被设置的话, 那么其值就是<CODECLASS="PARAMETER">$var</CODE>. </P><DIVCLASS="TABLE"><HR><ANAME="AEN17517"></A><P><B>表格 B-5. 字符串操作</B></P><TABLEBORDER="1"CLASS="CALSTABLE"><COL><COL><THEAD><TR><TH>表达式</TH><TH>含义</TH></TR></THEAD><TBODY><TR><TD><CODECLASS="OPTION">${#string}</CODE></TD><TD><CODECLASS="PARAMETER">$string</CODE>的长度</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">${string:position}</CODE></TD><TD>在<CODECLASS="PARAMETER">$string</CODE>中, 从位置<CODECLASS="PARAMETER">$position</CODE>开始提取子串 </TD></TR><TR><TD><CODECLASS="OPTION">${string:position:length}</CODE></TD><TD>在<CODECLASS="PARAMETER">$string</CODE>中, 从位置<CODECLASS="PARAMETER">$position</CODE>开始提取长度为<CODECLASS="PARAMETER">$length</CODE>的子串 </TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">${string#substring}</CODE></TD><TD>从变量<CODECLASS="PARAMETER">$string</CODE>的开头, 删除最短匹配<CODECLASS="PARAMETER">$substring</CODE>的子串 </TD></TR><TR><TD><CODECLASS="OPTION">${string##substring}</CODE></TD><TD>从变量<CODECLASS="PARAMETER">$string</CODE>的开头, 删除最长匹配<CODECLASS="PARAMETER">$substring</CODE>的子串 </TD></TR><TR><TD><CODECLASS="OPTION">${string%substring}</CODE></TD><TD>从变量<CODECLASS="PARAMETER">$string</CODE>的结尾, 删除最短匹配<CODECLASS="PARAMETER">$substring</CODE>的子串 </TD></TR><TR><TD><CODECLASS="OPTION">${string%%substring}</CODE></TD><TD>从变量<CODECLASS="PARAMETER">$string</CODE>的结尾, 删除最长匹配<CODECLASS="PARAMETER">$substring</CODE>的子串 </TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">${string/substring/replacement}</CODE></TD><TD>使用<CODECLASS="PARAMETER">$replacement</CODE>, 来代替第一个匹配的<CODECLASS="PARAMETER">$substring</CODE> </TD></TR><TR><TD><CODECLASS="OPTION">${string//substring/replacement}</CODE></TD><TD>使用<CODECLASS="PARAMETER">$replacement</CODE>, 代替<EM>所有</EM>匹配的<CODECLASS="PARAMETER">$substring</CODE> </TD></TR><TR><TD><CODECLASS="OPTION">${string/#substring/replacement}</CODE></TD><TD>如果<CODECLASS="PARAMETER">$string</CODE>的<EM>前缀</EM>匹配<CODECLASS="PARAMETER">$substring</CODE>, 那么就用<CODECLASS="PARAMETER">$replacement</CODE>来代替匹配到的<CODECLASS="PARAMETER">$substring</CODE></TD></TR><TR><TD><CODECLASS="OPTION">${string/%substring/replacement}</CODE></TD><TD>如果<CODECLASS="PARAMETER">$string</CODE>的<EM>后缀</EM>匹配<CODECLASS="PARAMETER">$substring</CODE>, 那么就用<CODECLASS="PARAMETER">$replacement</CODE>来代替匹配到的<CODECLASS="PARAMETER">$substring</CODE></TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">expr match "$string" '$substring'</CODE></TD><TD>匹配<CODECLASS="PARAMETER">$string</CODE>开头的<CODECLASS="PARAMETER">$substring</CODE>*的长度</TD></TR><TR><TD><CODECLASS="OPTION">expr "$string" : '$substring'</CODE></TD><TD>匹配<CODECLASS="PARAMETER">$string</CODE>开头的<CODECLASS="PARAMETER">$substring</CODE>*的长度</TD></TR><TR><TD><CODECLASS="OPTION">expr index "$string" $substring</CODE></TD><TD>在<CODECLASS="PARAMETER">$string</CODE>中匹配到的<CODECLASS="PARAMETER">$substring</CODE>的第一个字符出现的位置</TD></TR><TR><TD><CODECLASS="OPTION">expr substr $string $position $length</CODE></TD><TD>在<CODECLASS="PARAMETER">$string</CODE>中从位置<CODECLASS="PARAMETER">$position</CODE>开始提取长度为<CODECLASS="PARAMETER">$length</CODE>的子串</TD></TR><TR><TD><CODECLASS="OPTION">expr match "$string" '\($substring\)'</CODE></TD><TD>从<CODECLASS="PARAMETER">$string</CODE>的开头位置提取<CODECLASS="PARAMETER">$substring</CODE>*</TD></TR><TR><TD><CODECLASS="OPTION">expr "$string" : '\($substring\)'</CODE></TD><TD>从<CODECLASS="PARAMETER">$string</CODE>的开头位置提取<CODECLASS="PARAMETER">$substring</CODE>*</TD></TR><TR><TD><CODECLASS="OPTION">expr match "$string" '.*\($substring\)'</CODE></TD><TD>从<CODECLASS="PARAMETER">$string</CODE>的结尾提取<CODECLASS="PARAMETER">$substring</CODE>*</TD></TR><TR><TD><CODECLASS="OPTION">expr "$string" : '.*\($substring\)'</CODE></TD><TD>从<CODECLASS="PARAMETER">$string</CODE>的结尾提取<CODECLASS="PARAMETER">$substring</CODE>*</TD></TR></TBODY></TABLE><HR></DIV><P><BCLASS="COMMAND">*</B> <CODECLASS="PARAMETER">$substring</CODE>是一个<EM>正则表达式</EM>. </P><DIVCLASS="TABLE"><HR><ANAME="AEN17666"></A><P><B>表格 B-6. 一些结构的汇总</B></P><TABLEBORDER="1"CLASS="CALSTABLE"><COL><COL><THEAD><TR><TH>表达式</TH><TH>解释</TH></TR></THEAD><TBODY><TR><TD> </TD><TD> </TD></TR><TR><TD><EM>中括号</EM></TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">if [ CONDITION ]</CODE></TD><TD>测试结构</TD></TR><TR><TD><CODECLASS="OPTION">if [[ CONDITION ]]</CODE></TD><TD>扩展的测试结构</TD></TR><TR><TD><CODECLASS="OPTION">Array[1]=element1</CODE></TD><TD>数组初始化</TD></TR><TR><TD><CODECLASS="OPTION"> [a-z]</CODE></TD><TD><AHREF="regexp.html#REGEXREF">正则表达式</A>的字符范围</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><EM>大括号</EM></TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">${variable}</CODE></TD><TD>参数替换</TD></TR><TR><TD><CODECLASS="OPTION">${!variable}</CODE></TD><TD><AHREF="ivr.html#IVRREF">间接变量引用</A></TD></TR><TR><TD><CODECLASS="OPTION">{ command1; command2; . . . commandN; }</CODE></TD><TD>代码块</TD></TR><TR><TD><CODECLASS="OPTION">{string1,string2,string3,...}</CODE></TD><TD>大括号扩展</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><EM>圆括号</EM></TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">( command1; command2 )</CODE></TD><TD><AHREF="subshells.html#SUBSHELLSREF">子shell</A>中执行的命令组</TD></TR><TR><TD><CODECLASS="OPTION">Array=(element1 element2 element3)</CODE></TD><TD>数组初始化</TD></TR><TR><TD><CODECLASS="OPTION">result=$(COMMAND)</CODE></TD><TD>在子shell中执行命令, 并将结果赋值给变量</TD></TR><TR><TD><CODECLASS="OPTION">>(COMMAND)</CODE></TD><TD><AHREF="process-sub.html#PROCESSSUBREF">进程替换</A></TD></TR><TR><TD><CODECLASS="OPTION"><(COMMAND)</CODE></TD><TD>进程替换</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><EM>双圆括号</EM></TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">(( var = 78 ))</CODE></TD><TD>整型运算</TD></TR><TR><TD><CODECLASS="OPTION">var=$(( 20 + 5 ))</CODE></TD><TD>整型运算, 并将结果赋值给变量</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><EM>引号</EM></TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">"$variable"</CODE></TD><TD>"弱"引用</TD></TR><TR><TD><CODECLASS="OPTION">'string'</CODE></TD><TD>"强"引用</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><EM>后置引用</EM></TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">result=`COMMAND`</CODE></TD><TD>在子shell中运行命令, 并将结果赋值给变量</TD></TR></TBODY></TABLE><HR></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="contributed-scripts.html"ACCESSKEY="P">前一页</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">首页</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="sedawk.html"ACCESSKEY="N">下一页</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">捐献的脚本</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"> </TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">一个学习Sed和Awk的小手册</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?