refcards.html
来自「BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版」· HTML 代码 · 共 1,864 行 · 第 1/2 页
HTML
1,864 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><HTML><HEAD><TITLE>参考卡片</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINKREL="HOME"TITLE="高级Bash脚本编程指南"HREF="index.html"><LINKREL="PREVIOUS"TITLE="捐献的脚本"HREF="contributed-scripts.html"><LINKREL="NEXT"TITLE="一个学习Sed和Awk的小手册"HREF="sedawk.html"></HEAD><BODYCLASS="APPENDIX"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">高级Bash脚本编程指南: 一本深入学习shell脚本艺术的书籍</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="contributed-scripts.html"ACCESSKEY="P">前一页</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom"></TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="sedawk.html"ACCESSKEY="N">下一页</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="APPENDIX"><H1><ANAME="REFCARDS"></A>Appendix B. 参考卡片</H1><P>下面的参考卡片提供了对于某些特定的脚本概念的一个<EM>总结</EM>. 之前我们已经对这里所提及的概念进行了详细的解释, 并且给出了使用的例子. </P><DIVCLASS="TABLE"><HR><ANAME="AEN17110"></A><P><B>表格 B-1. 特殊的shell变量</B></P><TABLEBORDER="1"CLASS="CALSTABLE"><COL><COL><THEAD><TR><TH>变量</TH><TH>含义</TH></TR></THEAD><TBODY><TR><TD><CODECLASS="OPTION">$0</CODE></TD><TD>脚本名字</TD></TR><TR><TD><CODECLASS="OPTION">$1</CODE></TD><TD>位置参数 #1</TD></TR><TR><TD><CODECLASS="OPTION">$2 - $9</CODE></TD><TD>位置参数 #2 - #9</TD></TR><TR><TD><CODECLASS="OPTION">${10}</CODE></TD><TD>位置参数 #10</TD></TR><TR><TD><CODECLASS="OPTION">$#</CODE></TD><TD>位置参数的个数</TD></TR><TR><TD><CODECLASS="OPTION">"$*"</CODE></TD><TD>所有的位置参数(作为单个字符串) *</TD></TR><TR><TD><CODECLASS="OPTION">"$@"</CODE></TD><TD>所有的位置参数(每个都作为独立的字符串)</TD></TR><TR><TD><CODECLASS="OPTION">${#*}</CODE></TD><TD>传递到脚本中的命令行参数的个数</TD></TR><TR><TD><CODECLASS="OPTION">${#@}</CODE></TD><TD>传递到脚本中的命令行参数的个数</TD></TR><TR><TD><CODECLASS="OPTION">$?</CODE></TD><TD>返回值</TD></TR><TR><TD><CODECLASS="OPTION">$$</CODE></TD><TD>脚本的进程ID(PID)</TD></TR><TR><TD><CODECLASS="OPTION">$-</CODE></TD><TD>传递到脚本中的标志(使用<EM>set</EM>)</TD></TR><TR><TD><CODECLASS="OPTION">$_</CODE></TD><TD>之前命令的最后一个参数</TD></TR><TR><TD><CODECLASS="OPTION">$!</CODE></TD><TD>运行在后台的最后一个作业的进程ID(PID)</TD></TR></TBODY></TABLE><HR></DIV><P><BCLASS="COMMAND">*</B> <EM>必须被引用起来</EM>, 否则默认为<SPANCLASS="QUOTE">"<CODECLASS="VARNAME">$@</CODE>"</SPAN>. </P><DIVCLASS="TABLE"><HR><ANAME="AEN17180"></A><P><B>表格 B-2. 测试操作: 二元比较</B></P><TABLEBORDER="1"CLASS="CALSTABLE"><COL><COL><COL><COL><COL><THEAD><TR><TH>操作</TH><TH>描述</TH><TH>-----</TH><TH>操作</TH><TH>描述</TH></TR></THEAD><TBODY><TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD>算术比较</TD><TD> </TD><TD> </TD><TD>字符串比较</TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">-eq</CODE></TD><TD>等于</TD><TD> </TD><TD><CODECLASS="OPTION">=</CODE></TD><TD>等于</TD></TR><TR><TD> </TD><TD> </TD><TD> </TD><TD><CODECLASS="OPTION">==</CODE></TD><TD>等于</TD></TR><TR><TD><CODECLASS="OPTION">-ne</CODE></TD><TD>不等于</TD><TD> </TD><TD><CODECLASS="OPTION">!=</CODE></TD><TD>不等于</TD></TR><TR><TD><CODECLASS="OPTION">-lt</CODE></TD><TD>小于</TD><TD> </TD><TD><CODECLASS="OPTION">\<</CODE></TD><TD>小于 (ASCII) *</TD></TR><TR><TD><CODECLASS="OPTION">-le</CODE></TD><TD>小于等于</TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">-gt</CODE></TD><TD>大于</TD><TD> </TD><TD><CODECLASS="OPTION">\></CODE></TD><TD>大于 (ASCII) *</TD></TR><TR><TD><CODECLASS="OPTION">-ge</CODE></TD><TD>大于等于</TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD> </TD><TD> </TD><TD> </TD><TD><CODECLASS="OPTION">-z</CODE></TD><TD>字符串为空</TD></TR><TR><TD> </TD><TD> </TD><TD> </TD><TD><CODECLASS="OPTION">-n</CODE></TD><TD>字符串不为空</TD></TR><TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD>算术比较</TD><TD>双括号(( ... ))结构</TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">></CODE></TD><TD>大于</TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">>=</CODE></TD><TD>大于等于</TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION"><</CODE></TD><TD>小于</TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION"><=</CODE></TD><TD>小于等于</TD><TD> </TD><TD> </TD><TD> </TD></TR></TBODY></TABLE><HR></DIV><P><BCLASS="COMMAND">*</B> <EM>如果在双中括号</EM> [[ ... ]] <EM>测试结构中使用的话, 那么就不需要使用转义符</EM>\<EM>了. </EM></P><DIVCLASS="TABLE"><HR><ANAME="AEN17292"></A><P><B>表格 B-3. 文件类型的测试操作</B></P><TABLEBORDER="1"CLASS="CALSTABLE"><COL><COL><COL><COL><COL><THEAD><TR><TH>操作</TH><TH>测试条件</TH><TH>-----</TH><TH>操作</TH><TH>测试条件</TH></TR></THEAD><TBODY><TR><TD><CODECLASS="OPTION">-e</CODE></TD><TD>文件是否存在</TD><TD> </TD><TD><CODECLASS="OPTION">-s</CODE></TD><TD>文件大小不为0</TD></TR><TR><TD><CODECLASS="OPTION">-f</CODE></TD><TD>是一个<EM>标准</EM>文件</TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">-d</CODE></TD><TD>是一个<EM>目录</EM></TD><TD> </TD><TD><CODECLASS="OPTION">-r</CODE></TD><TD>文件具有<EM>读</EM>权限</TD></TR><TR><TD><CODECLASS="OPTION">-h</CODE></TD><TD>文件是一个<EM>符号链接</EM></TD><TD> </TD><TD><CODECLASS="OPTION">-w</CODE></TD><TD>文件具有<EM>写</EM>权限</TD></TR><TR><TD><CODECLASS="OPTION">-L</CODE></TD><TD>文件是一个<EM>符号链接</EM></TD><TD> </TD><TD><CODECLASS="OPTION">-x</CODE></TD><TD>文件具有<EM>执行</EM>权限</TD></TR><TR><TD><CODECLASS="OPTION">-b</CODE></TD><TD>文件是一个<EM>块设备</EM></TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">-c</CODE></TD><TD>文件是一个<EM>字符设备</EM></TD><TD> </TD><TD><CODECLASS="OPTION">-g</CODE></TD><TD>设置了<EM>sgid</EM>标记</TD></TR><TR><TD><CODECLASS="OPTION">-p</CODE></TD><TD>文件是一个<EM>管道</EM></TD><TD> </TD><TD><CODECLASS="OPTION">-u</CODE></TD><TD>设置了<EM>suid</EM>标记</TD></TR><TR><TD><CODECLASS="OPTION">-S</CODE></TD><TD>文件是一个<AHREF="devref1.html#SOCKETREF">socket</A></TD><TD> </TD><TD><CODECLASS="OPTION">-k</CODE></TD><TD>设置了<SPANCLASS="QUOTE">"粘贴位"</SPAN></TD></TR><TR><TD><CODECLASS="OPTION">-t</CODE></TD><TD>文件与一个<EM>终端</EM>相关联</TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">-N</CODE></TD><TD>从这个文件最后一次被读取之后, 它被修改过</TD><TD> </TD><TD><CODECLASS="OPTION">F1 -nt F2</CODE></TD><TD>文件F1比文件F2<EM>新</EM> *</TD></TR><TR><TD><CODECLASS="OPTION">-O</CODE></TD><TD>这个文件的宿主是你</TD><TD> </TD><TD><CODECLASS="OPTION">F1 -ot F2</CODE></TD><TD>文件F1比文件F2<EM>旧</EM> *</TD></TR><TR><TD><CODECLASS="OPTION">-G</CODE></TD><TD>文件的<EM>组id</EM>与你所属的组相同</TD><TD> </TD><TD><CODECLASS="OPTION">F1 -ef F2</CODE></TD><TD>文件F1和文件F2都是同一个文件的<EM>硬链接</EM> *</TD></TR><TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION">!</CODE></TD><TD><SPANCLASS="QUOTE">"非"</SPAN> (反转上边的测试结果)</TD><TD> </TD><TD> </TD><TD> </TD></TR></TBODY></TABLE><HR></DIV><P><BCLASS="COMMAND">*</B> <EM>二元</EM>操作符(需要两个操作数). </P><DIVCLASS="TABLE"><HR><ANAME="AEN17426"></A><P><B>表格 B-4. 参数替换和扩展</B></P><TABLEBORDER="1"CLASS="CALSTABLE"><COL><COL><THEAD><TR><TH>表达式</TH><TH>含义</TH></TR></THEAD><TBODY><TR><TD><CODECLASS="OPTION">${var}</CODE></TD><TD>变量<CODECLASS="PARAMETER">var</CODE>的值, 与<CODECLASS="PARAMETER">$var</CODE>相同</TD></TR><TR><TD> </TD><TD> </TD></TR><TR><TD><CODECLASS="OPTION"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?