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

📄 ch02_01.htm

📁 unix基础教程
💻 HTM
📖 第 1 页 / 共 5 页
字号:
</table><p><h4 class="refsect2">Input/Output Keywords</h4><p><tt class="literal">ibase</tt>, <tt class="literal">obase</tt>,and <tt class="literal">scale</tt> each store a value.Typing them on a line by themselvesdisplays their current value.  More commonly, youwould change their values through assignment.  Letters A&#8211;F are treatedas digits whose values are 10&#8211;15.</p><dl><dt><tt class="literal">ibase =</tt> <tt><em class="replaceable">n</em></tt></dt><dd>Numbers that are input (e.g., typed) are read as base <em class="emphasis">n</em></tt>(default is 10).</p></dd><dt><tt class="literal">obase =</tt> <tt><em class="replaceable">n</em></tt></dt><dd>Numbers displayed are in base <em class="emphasis">n</em></tt> (default is 10).Note: once <tt class="literal">ibase</tt> has been changed from 10, use digit &#8220;A&#8221;to restore <tt class="literal">ibase</tt> or <tt class="literal">obase</tt> to decimal.</p></dd><dt><tt class="literal">scale =</tt> <tt><em class="replaceable">n</em></tt></dt><dd>Display computations using <em class="emphasis">n</em></tt> decimal places (default is 0,meaning that results are truncated to integers).<tt class="literal">scale</tt> is normally used only for base-10 computations.</p></dd></dl><h4 class="refsect2">Statement Keywords</h4><p>A semicolon or a newline separates one statement from another.Curly braces are needed only when grouping multiple statements.</p><dl><dt><tt class="literal">if (</tt><tt><em class="replaceable">rel-expr</em></tt><tt class="literal">) {</tt><tt><em class="replaceable">statements</em></tt><tt class="literal">}</tt></dt><dd>Do one or more <em class="emphasis">statements</em></tt> if relational expression<em class="emphasis">rel-expr</em> is true; for example:</p><blockquote><pre class="code"><tt class="userinput"><b>if (x == y) i = i + 1</b></tt></pre></blockquote></dd><dt><tt class="literal">while (</tt><tt><em class="replaceable">rel-expr</em></tt><tt class="literal">) {</tt><tt><em class="replaceable">statements</em></tt><tt class="literal">}</tt></dt><dd>Repeat one or more <em class="emphasis">statements</em></tt> while <em class="emphasis">rel-expr</em></tt> is true;for example:</p><blockquote><pre class="code"><tt class="userinput"><b>while (i &gt; 0) {p = p*n; q = a/b; i = i-1}</b></tt></pre></blockquote></dd><dt><tt class="literal">for (</tt><tt><em class="replaceable">expr1</em></tt><tt class="literal">;</tt> <tt><em class="replaceable">rel-expr</em></tt><tt class="literal">;</tt> <tt><em class="replaceable">expr2</em></tt><tt class="literal">) {</tt><tt><em class="replaceable">statements</em></tt><tt class="literal">}</tt></dt><dd>Similar to <tt class="literal">while</tt>; for example, to print the first 10 multiples of5, you could type:</p><blockquote><pre class="code"><tt class="userinput"><b>for (i = 1; i &lt;= 10; i++) i*5</b></tt></pre></blockquote></dd><dt><tt class="literal">break</tt></dt><dd>Terminate a <tt class="literal">while</tt> or <tt class="literal">for</tt> statement.</p></dd><dt><tt class="literal">quit</tt></dt><dd>Exit <tt class="literal">bc</tt>.</p></dd></dl><h4 class="refsect2">Function Keywords</h4><dl><dt><tt class="literal">define</tt> <tt><em class="replaceable">j</em></tt><tt class="literal">(</tt><tt><em class="replaceable">k</em></tt><tt class="literal">) {</tt></dt><dd>Begin the definition of function <em class="emphasis">j</em></tt> having a single argument <em class="emphasis">k</em></tt>.Additional arguments are allowed, separated by commas.Statements follow on successive lines.  End with a <tt class="literal">}</tt>.</p></dd><dt><tt class="literal">auto</tt> <tt><em class="replaceable">x</em></tt><tt class="literal">,</tt> <tt><em class="replaceable">y</em></tt></dt><dd>Set up <em class="emphasis">x</em></tt> and <em class="emphasis">y</em></tt> as variables local to a function definition,initialized to 0 and meaningless outside the function.  Must appear first.</p></dd><dt><tt class="literal">return(</tt><tt><em class="replaceable">expr</em></tt><tt class="literal">)</tt></dt><dd>Pass the value of expression <em class="emphasis">expr</em></tt> back to the program.Return 0 if <tt class="literal">(</tt><em class="emphasis">expr</em></tt><tt class="literal">)</tt> is left off.Used in function definitions.</p></dd><dt><tt class="literal">sqrt(</tt><tt><em class="replaceable">expr</em></tt><tt class="literal">)</tt></dt><dd>Compute the square root of expression <em class="emphasis">expr</em></tt>.</p></dd><dt><tt class="literal">length(</tt><tt><em class="replaceable">expr</em></tt><tt class="literal">)</tt></dt><dd>Compute how many digits are in <em class="emphasis">expr</em></tt>.</p></dd><dt><tt class="literal">scale(</tt><tt><em class="replaceable">expr</em></tt><tt class="literal">)</tt></dt><dd>Same, but count only digits to the right of the decimal point.</p></dd></dl><h4 class="refsect2">Math Library Functions</h4><p>These are available when <tt class="literal">bc</tt> is invoked with <tt class="literal">-l</tt>.Library functions set <tt class="literal">scale</tt> to 20.</p><dl><dt><tt class="literal">s(</tt><tt><em class="replaceable">angle</em></tt><tt class="literal">)</tt></dt><dd>Compute the sine of <em class="emphasis">angle</em></tt>, a constant or expressionin radians.</p></dd><dt><tt class="literal">c(</tt><tt><em class="replaceable">angle</em></tt><tt class="literal">)</tt></dt><dd>Compute the cosine of <em class="emphasis">angle</em></tt>, a constant or expressionin radians.</p></dd><dt><tt class="literal">a(</tt><tt><em class="replaceable">n</em></tt><tt class="literal">)</tt></dt><dd>Compute the arctangent of <em class="emphasis">n</em></tt>, returning an angle in radians.</p></dd><dt><tt class="literal">e(</tt><tt><em class="replaceable">expr</em></tt><tt class="literal">)</tt></dt><dd>Compute <em class="emphasis">e</em></tt> to the power of <em class="emphasis">expr</em></tt>.</p></dd><dt><tt class="literal">l(</tt><tt><em class="replaceable">expr</em></tt><tt class="literal">)</tt></dt><dd>Compute natural log of <em class="emphasis">expr</em></tt>.</p></dd><dt><tt class="literal">j(</tt><tt><em class="replaceable">n</em></tt><tt class="literal">, </tt><tt><em class="replaceable">x</em></tt><tt class="literal">)</tt></dt><dd>Compute Bessel function of integer order <em class="emphasis">n</em></tt>.</p></dd></dl><h4 class="refsect2">Operators</h4><p>These consist of operators and other symbols.Operators can be arithmetic, unary, assignment, or relational.</p><table border="1" cellpadding="3"><tr><td>Arithmetic</td><td><p><tt class="literal"><tt class="literal">+   -   *   /   %   ^</tt></tt></p></td></tr><tr><td>Unary</td><td><p><tt class="literal"><tt class="literal">-   ++  --</tt></tt></p></td></tr><tr><td>Assignment</td><td><p><tt class="literal"><tt class="literal">=+  =-  =*  =/  =%  =^  =</tt></tt></p></td></tr><tr><td>Relational</td><td><p><tt class="literal"><tt class="literal">&lt;   &lt;=  &gt;   &gt;=  ==  !=</tt></tt></p></td></tr></table><p><h4 class="refsect2">Other Symbols</h4><dl><dt><tt class="literal">/*   */</tt></dt><dd>Enclose comments.</p></dd><dt><tt class="literal">( )</tt></dt><dd>Control the evaluation of expressions (change precedence).Can also be used around assignment statements to force theresult to print.</p></dd><dt><tt class="literal">{ }</tt></dt><dd>Used to group statements.</p></dd><dt><tt class="literal">[ ]</tt></dt><dd>Array index.</p></dd><dt><tt class="literal">"</tt><tt><em class="replaceable">text</em></tt><tt class="literal">"</tt></dt><dd>Use as a statement to print <em class="emphasis">text</em></tt>.</p></dd></dl><h4 class="refsect2">Examples</h4><p>Note that when you type some quantity (a number or expression),it is evaluated and printed, but assignment statements produce no display:</p><blockquote><pre class="code"><tt class="userinput"><b>ibase = 8         </b></tt> <i class="lineannotation">Octal input</i><tt class="userinput"><b>20                </b></tt> <i class="lineannotation">Evaluate this octal number</i>16                <i class="lineannotation">Terminal displays decimal value</i><tt class="userinput"><b>obase = 2         </b></tt> <i class="lineannotation">Display output in base 2 instead of base 10</i><tt class="userinput"><b>20                </b></tt> <i class="lineannotation">Octal input</i>10000             <i class="lineannotation">Terminal now displays binary value</i><tt class="userinput"><b>ibase = A         </b></tt> <i class="lineannotation">Restore base 10 input</i><tt class="userinput"><b>scale = 3         </b></tt> <i class="lineannotation">Truncate results to three places</i><tt class="userinput"><b>8/7               </b></tt> <i class="lineannotation">Evaluate a division</i>1.001001000       <i class="lineannotation">Oops! Forgot to reset output base to 10</i><tt class="userinput"><b>obase = 10        </b></tt> <i class="lineannotation">Input is decimal now, so "A" isn't needed</i><tt class="userinput"><b>8/7</b></tt>1.142             <i class="lineannotation">Terminal displays result (truncated)</i></pre></blockquote><p>The following lines show the use of functions:</p><blockquote><pre class="code"><tt class="userinput"><b>define p(r,n){   </b></tt> <i class="lineannotation">Function p uses two arguments</i>  <tt class="userinput"><b>auto v         </b></tt> <i class="lineannotation">v is a local variable</i>  <tt class="userinput"><b>v = r^n        </b></tt> <i class="lineannotation">r raised to the n power</i>  <tt class="userinput"><b>return(v)}     </b></tt> <i class="lineannotation">Value returned</i><tt class="userinput"><b>scale = 5</b></tt><tt class="userinput"><b>x = p(2.5,2)   </b></tt> <i class="lineannotation">x = 2.5 ^ 2</i><tt class="userinput"><b>x              </b></tt> <i class="lineannotation">Print value of x</i>6.25<tt class="userinput"><b>length(x)      </b></tt> <i class="lineannotation">Number of digits</i>3<tt class="userinput"><b>scale(x)       </b></tt> <i class="lineannotation">Number of places to right of decimal point</i>2</pre></blockquote></td></tr><tr><td valign="top"><a name="bdiff">bdiff</a></a></td><td><tt class="literal">bdiff</tt> <tt><em class="replaceable"><tt>file1</em></tt> <tt><em class="replaceable">file2</em></tt> [<tt><em class="replaceable">options</tt></em></tt>]<p><a name="IXT-2-121839" /><a name="IXT-2-121840" /><a name="IXT-2-121841" />Compare <em class="emphasis">file1</em></tt> with <em class="emphasis">file2</em></tt> and report the differinglines.  <tt class="literal">bdiff</tt> splits the files and then runs <tt class="literal">diff</tt>,allowing it to act on files that would normally betoo large to handle.  <tt class="literal">bdiff</tt> reads standard input if one ofthe files is <tt class="literal">&#8211;</tt>.  See also <b class="emphasis-bold"><a href="#diff">diff</a></b>.</p><h4 class="refsect2">Options</h4><dl><dt><i><tt><em class="replaceable"><tt>n</em></tt></i></dt><dd>Split each file into <em class="emphasis">n</tt></em></tt>-line segments (default is 3500). This option must be listed first.</p></dd><dt><tt class="literal">-s</tt></dt><dd>Suppress error messages from <tt class="literal">bdiff</tt> (but not from <tt class="literal">diff</tt>).</p></dd></dl></td></tr><tr><td valign="top"><a name="biff">biff</a></a></td><td><tt class="literal">/usr/ucb/biff</tt> [<tt class="literal">y</tt> | <tt class="literal">n</tt>]<p><a name="IXT-2-121842" /><a name="IXT-2-121843" /><a name="IXT-2-121844" /><a name="IXT-2-121845" />Turn mail notification on or off.  With no arguments,<tt class="literal">biff</tt> indicates the current status.</p><p>When mail notification is turned on, each time you get incoming mail,the bell rings, and the first few lines of each message are displayed.</p></td></tr><tr><td valign="top"><a name="cal">cal</a></a></td><td><tt class="literal">cal</tt> [[<tt><em class="replaceable"><tt>month</em></tt>] <tt><em class="replaceable">year</tt></em></tt>]<p><a name="IXT-2-121846" /><a name="IXT-2-121847" /><a name="IXT-2-121848" />With no arguments, print a calendar for the current month.Otherwise, print either a 12-month calendar (beginning with January)for the given <em class="emphasis">year</em></tt> or a one-month calendar of the given<em class="emphasis">month</em></tt> and <em class="emphasis">year</em></tt>.<em class="emphasis">month</em></tt> ranges from 1 to 12;<em class="emphasis">year</em></tt> ranges from 1 to 9999.</p><h4 class="refsect2">Examples</h4><blockquote><pre class="code"><tt class="userinput"><b>cal 12 1999</b></tt><tt class="userinput"><b>cal 1999 &gt; year_file</b></tt></pre></blockquote></td></tr><tr><td valign="top"><a name="calendar">calendar</a></a></td><td><tt class="literal">calendar</tt> [<tt><em class="replaceable"><tt>option</tt></em></tt>]<p><a name="IXT-2-121849" /><a name="IXT-2-121850" />Read your <tt class="literal">calendar</tt> file and display all lines that contain thecurrent date.  The <tt class="literal">calendar</tt> file is like a memo board.  Youcreate the file and add entries like the following:</p><blockquote><pre class="code">5/4     meeting with design group at 2 pmmay 6   pick up anniversary card on way home</pre></blockquote><p>When you run <tt class="literal">calendar</tt> on May 4, the first line is displayed.<tt class="literal">calendar</tt> can be automated by using <tt class="literal">crontab</tt> or <tt class="literal">at</tt>,or by including it in your startup files <tt class="literal">.profile</tt> or <tt class="literal">.login</tt>.</p><h4 class="refsect2">Option</h4><dl><dt><i>&#8211;</i></dt><dd>Allow a privileged user to invoke <tt class="literal">calendar</tt> for all users,searching each user's login directory for a file named <tt class="literal">calendar</tt>.Entries that match are sent to a user via mail.This feature is intended for use via <tt class="literal">cron</tt>.It is not recommended in networked environments withlarge user bases.</p></dd></dl></td></tr><tr><td valign="top"><a name="cancel">cancel</a></a></td><td><tt class="literal">cancel</tt> [<em class="replaceable"><tt>options</em>] [<em class="replaceable">printer</tt></em>]<p>

⌨️ 快捷键说明

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