⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch04_02.htm

📁 unix基础教程
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<html><head><title>Syntax (UNIX in a Nutshell: System V Edition)</title><link rel="stylesheet" type="text/css" href="../style/style1.css" /><meta name="DC.Creator" content="Arnold Robbins" /><meta name="DC.Format" content="text/xml" scheme="MIME" /><meta name="DC.Language" content="en-US" /><meta name="DC.Publisher" content="O'Reilly &amp; Associates, Inc." /><meta name="DC.Source" scheme="ISBN" content="1-56592-427-4" /><meta name="DC.Subject.Keyword" content="stuff" /><meta name="DC.Title" content="UNIX in a Nutshell: System V Edition" /><meta name="DC.Type" content="Text.Monograph" /></head><body bgcolor="#ffffff"><img src="gifs/smbanner.gif" usemap="#banner-map" border="0" alt="Book Home" /><map name="banner-map"><area shape="rect" coords="1,-2,616,66" href="index.htm" alt="Book Title" /><area shape="rect" coords="629,-11,726,25" href="jobjects/fsearch.htm" alt="Search this book" /></map><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch04_01.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228" /><td align="right" valign="top" width="228"><a href="ch04_03.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr></table></div><h2 class="sect1">4.2. Syntax</h2><p>This section describes the many symbols peculiar tothe Bourne and Korn shells.  The topics are arranged as follows:</p><ul><li><p>Special files </p></li><li><p>Filename metacharacters </p></li><li><p>Quoting</p></li><li><p>Command forms</p></li><li><p>Redirection forms</p></li><li><p>Coprocesses (Korn shell only)</p></li></ul><a name="unut-ch-4-sect-2.1" /><div class="sect2"><h3 class="sect2">4.2.1. Special Files</h3><p><a name="IXT-4-122643" /><a name="IXT-4-122644" /><a name="IXT-4-122645" /><a name="IXT-4-122646" /></p><dl><dt><tt class="literal">/etc/profile</tt></dt><dd>Executed automatically at login, first.</p></dd><dt><tt class="literal">$HOME/.profile</tt></dt><dd>Executed automatically at login, second.</p></dd><dt><i>$ENV</i></dt><dd><a name="IXT-4-122647" />Specifies the name of a file to read when a new Korn shell is created.(<tt class="literal">ksh88</tt>: all shells.<tt class="literal">ksh93</tt>: interactive shells only.)The value is variable (<tt class="literal">ksh93</tt>: and command andarithmetic) substituted in order to determine the actual file name.Login shells read $ENV after processing<tt class="literal">/etc/profile</tt> and<tt class="literal">$HOME/.profile</tt>.</p></dd><dt><tt class="literal">/etc/passwd</tt></dt><dd>Source of home directories for<tt class="literal">~</tt><em class="emphasis">name</em>abbreviations.(On networked systems, this information may comefrom NIS or NIS+, not your workstation password file.)</p></dd></dl></div><a name="unut-ch-4-sect-2.2" /><div class="sect2"><h3 class="sect2">4.2.2. Filename Metacharacters</h3><p><a name="IXT-4-122648" /><a name="IXT-4-122649" /><a name="IXT-4-122650" /><a name="IXT-4-122651" /><a name="IXT-4-122652" /><a name="IXT-4-122653" /><a name="IXT-4-122654" /><a name="IXT-4-122655" /></p><table border="1" cellpadding="3"><tr><td><p><tt class="literal">*</tt></p></td><td><p>Match any string of zero or more characters.</p></td></tr><tr><td><p><tt class="literal">?</tt></p></td><td><p>Match any single character.</p></td></tr><tr><td><p><tt class="literal">[</tt><em class="replaceable"><tt>abc</tt></em>...<tt class="literal">]</tt></p></td><td><p>Match any one of the enclosed characters;a hyphen can specify a range (e.g., a&#8211;z, A&#8211;Z, 0&#8211;9).</p></td></tr><tr><td><p><tt class="literal">[!</tt><em class="replaceable"><tt>abc</tt></em>...<tt class="literal">]</tt></p></td><td><p>Match any character <em class="emphasis">not</em> enclosed as above.</p></td></tr></table><p><p>In the Korn shell:<a name="IXT-4-122656" /><a name="IXT-4-122657" /><a name="IXT-4-122658" /><a name="IXT-4-122659" /></p><table border="1" cellpadding="3"><tr><td><p><tt class="literal">?(</tt><em class="replaceable"><tt>pattern</tt></em><tt class="literal">)</tt></p></td><td><p>Match zero or one instance of <em class="emphasis">pattern</em>.</p></td></tr><tr><td><p><tt class="literal">*(</tt><em class="replaceable"><tt>pattern</tt></em><tt class="literal">)</tt></p></td><td><p>Match zero or more instances of <em class="emphasis">pattern</em>.</p></td></tr><tr><td><p><tt class="literal">+(</tt><em class="replaceable"><tt>pattern</tt></em><tt class="literal">)</tt></p></td><td><p>Match one or more instances of <em class="emphasis">pattern</em>.</p></td></tr><tr><td><p><tt class="literal">@(</tt><em class="replaceable"><tt>pattern</tt></em><tt class="literal">)</tt></p></td><td><p>Match exactly one instance of <em class="emphasis">pattern</em>.</p></td></tr><tr><td><p><tt class="literal">!(</tt><em class="replaceable"><tt>pattern</tt></em><tt class="literal">)</tt></p></td><td><p>Match any strings that don't match <em class="emphasis">pattern</em>.</p></td></tr><tr><td><p><tt class="literal">\</tt><em class="replaceable"><tt>n</tt></em></p></td><td><p>Match the text matched by the <em class="emphasis">n</em>'th subpatternin <tt class="literal">(...)</tt>. <tt class="literal">ksh93</tt> only.</p></td></tr><tr><td><p><tt class="literal">~</tt></p></td><td><p>Home directory of the current user. </p></td></tr><tr><td><p><tt class="literal">~</tt><em class="replaceable"><tt>name</tt></em></p></td><td><p>Home directory of user <em class="emphasis">name</em>.</p></td></tr><tr><td><p><tt class="literal">~+</tt></p></td><td><p>Current working directory ($PWD).</p></td></tr><tr><td><p><tt class="literal">~-</tt></p></td><td><p>Previous working directory ($OLDPWD).</p></td></tr><a name="IXT-4-122660" /><a name="IXT-4-122661" /><a name="IXT-4-122662" /></table><p><p>This <em class="emphasis">pattern</em> can be a sequence of patternsseparated by <tt class="literal">|</tt>,meaning that the match applies to any of the patterns.If <tt class="literal">&amp;</tt> is used instead of<tt class="literal">|</tt>, all the patterns must match.<tt class="literal">&amp;</tt> has higher precedencethan <tt class="literal">|</tt>.This extended syntax resembles that available in<tt class="literal">egrep</tt> and <tt class="literal">awk</tt>.</p><p><tt class="literal">ksh93</tt> supports thePOSIX <tt class="literal">[[=</tt><em class="replaceable"><tt>c</tt></em><tt class="literal">=]]</tt>notation for matching characters that have the same weight,and <tt class="literal">[[.</tt><em class="replaceable"><tt>c</tt></em><tt class="literal">.]]</tt>for specifying collating sequences. In addition, character classes,of the form <tt class="literal">[[:</tt><em class="replaceable"><tt>class</tt></em><tt class="literal">:]]</tt>,allow you to match the following classes of characters.<a name="IXT-4-122663" /><a name="IXT-4-122664" /></p><table border="1" cellpadding="3"><tr><th><em class="emphasis">Class</em></th><th><em class="emphasis">Characters Matched</em></th></tr><tr><td><p><tt class="literal">alnum</tt></p></td><td><p>Alphanumeric characters<a name="IXT-4-122665" /></p></td></tr><tr><td><p><tt class="literal">alpha</tt></p></td><td><p>Alphabetic characters<a name="IXT-4-122666" /></p></td></tr><tr><td><p><tt class="literal">blank</tt></p></td><td><p>Space or tab<a name="IXT-4-122667" /></p></td></tr><tr><td><p><tt class="literal">cntrl</tt></p></td><td><p>Control characters<a name="IXT-4-122668" /></p></td></tr><tr><td><p><tt class="literal">digit</tt></p></td><td><p>Decimal digits<a name="IXT-4-122669" /></p></td></tr><tr><td><p><tt class="literal">graph</tt></p></td><td><p>Nonspace characters<a name="IXT-4-122670" /></p></td></tr><tr><td><p><tt class="literal">lower</tt></p></td><td><p>Lowercase characters<a name="IXT-4-122671" /></p></td></tr><tr><td><p><tt class="literal">print</tt></p></td><td><p>Printable characters<a name="IXT-4-122672" /></p></td></tr><tr><td><p><tt class="literal">space</tt></p></td><td><p>Whitespace characters<a name="IXT-4-122673" /></p></td></tr><tr><td><p><tt class="literal">upper</tt></p></td><td><p>Uppercase characters<a name="IXT-4-122674" /></p></td></tr><tr><td><p><tt class="literal">xdigit</tt></p></td><td><p>Hexadecimal digits<a name="IXT-4-122675" /></p></td></tr></table><p><a name="unut-ch-4-sect-2.2.1" /><div class="sect3"><h3 class="sect3">4.2.2.1. Examples</h3><blockquote><pre class="code">$ <tt class="userinput"><b>ls new*</b></tt>                 <i class="lineannotation">List new and new.1</i>$ <tt class="userinput"><b>cat ch?</b></tt>                 <i class="lineannotation">Match ch9 but not ch10</i>$ <tt class="userinput"><b>vi [D-R]*</b></tt>               <i class="lineannotation">Match files that begin with uppercase D through R</i>$ <tt class="userinput"><b>pr !(*.o|core) | lp</b></tt>     <i class="lineannotation">Korn shell only; print files that are not object files or core dumps</i></pre></blockquote></div></div><a name="unut-ch-4-sect-2.3" /><div class="sect2"><h3 class="sect2">4.2.3. Quoting</h3><p><a name="IXT-4-122676" /><a name="IXT-4-122677" /><a name="IXT-4-122678" />Quoting disables a character's special meaning and

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -