Linux的shell编程

 

<!-- /* Font Definitions */ @font-face {font-family:"MS 明朝"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-alt:"MS Mincho"; mso-font-charset:128; mso-generic-font-family:roman; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face {font-family:SimSun; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:宋体; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:Century; panose-1:2 4 6 4 5 5 5 2 3 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:647 0 0 0 159 0;} @font-face {font-family:"MS Pゴシック"; panose-1:2 11 6 0 7 2 5 8 2 4; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:variable; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face {font-family:"/@SimSun"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@MS 明朝"; panose-1:2 2 6 9 4 2 5 8 3 4; mso-font-charset:128; mso-generic-font-family:roman; mso-font-pitch:fixed; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face {font-family:"/@MS Pゴシック"; panose-1:2 11 6 0 7 2 5 8 2 4; mso-font-charset:128; mso-generic-font-family:modern; mso-font-pitch:variable; mso-font-signature:-1610612033 1757936891 16 0 131231 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0mm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:Century; mso-fareast-font-family:"MS 明朝"; mso-bidi-font-family:"Times New Roman"; mso-font-kerning:1.0pt;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline; text-underline:single;} p {mso-margin-top-alt:auto; margin-right:0mm; mso-margin-bottom-alt:auto; margin-left:0mm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"MS Pゴシック"; mso-bidi-font-family:"MS Pゴシック";} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:99.25pt 30.0mm 30.0mm 30.0mm; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:18.0pt;} div.Section1 {page:Section1;} -->

Linux shell

http://tech.sina.com.cn/c/1338.html

Shell 本身是一个用 C 写的程序,它是用 使用 Linux 梁。 Shell 既是一 命令 言,又是一 程序 设计语 言。作 命令 言,它交互式地解 行用 户输 入的命令;作 程序 设计语 言,它定 了各 种变 量和参 数,并提供了 多在高 级语 言中才具有的控制 构,包括循 和分支。它 然不是 Linux 核心的一部分,但它 用了系 核心的大部分功能来 行程序、建 立文件并以并行的方式 协调 各个程序的运行。因此, 于用 shell 是最重要的 用程序,深入了解和熟 掌握 shell 的特性极其使用方法,是用好 Linux 关键 。可以 shell 使用的熟 程度反映了用 户对 Linux 使用的熟 程度。

  一、什 shell

  当一个用 Linux 之后,系 初始化程序 init 为每 一个用 运行一个称 shell( 外壳 ) 的程序。那 shell 是什 呢? 确切一点 shell 就是一个命令行解 器,它 提供了一个向 Linux 内核 求以便运行程序的界面系 统级 程序,用 可以用 shell 来启 、 挂起、停止甚至是 写一些程序。

  当用 使用 Linux 是通 命令来完成所需工作的。一个命令就是用 shell 间对话 的一个基本 位,它是由多个字符 成并以 束的 字符串。 shell 户输 入的命令,就象 DOS 里的 command.com 所做的一 ,所不同的是,在 DOS 中, command.com 只有一个,而 在 Linux 下比 流行的 shell 有好几个, shell 都各有千秋。一般的 Linux 都将 bash shell

  二、几 流行的 shell

  目前流行的 shell ash bash ksh csh zsh 等,你可以用下面的命令来 看你自己的 shell 型:

   #echo $SHELL

   $SHELL 是一个 量,它 记录 所使用的 shell 型。你可以用命令:

   #shell-name

  来 转换 shell shell-name 是你想要 尝试 使用的 shell 的名称,如 ash 等。 个命令 又启 了一个 shell shell 在最初登 的那个 shell 之后,称 shell 或子 shell 。使用命令:

   $exit

  可以退出 个子 shell

  使用不同的 shell 的原因在于它 各自都有自己的特点,下面作一个 简单 的介

   1.ash

   ash shell 是由 Kenneth Almquist 写的, Linux 中占用系 统资 源最少的一个小 shell ,它只包含 24 个内部命令,因而使用起来很不方便。

   2.bash

   bash Linux 使用的 shell ,它由 Brian Fox Chet Ramey 共同完成,是 Bourne Again Shell 写,内部命令一共有 40 个。 Linux 使用它作 shell 是因 它有 如以下的特色:

   (1) 可以使用 DOS 下面的 doskey 的功能,用方向 键查阅 和快速 入并修改命令。

   (2) 过查 找匹配的方式 出以某字符串 开头 的命令。

   (3) 包含了自身的帮助功能,你只要在提示符下面 help 就可以得到相 的帮助。

   3.ksh

   ksh Korn shell 写,由 Eric Gisin 写,共有 42 条内部命令。 shell 最大的 点是几乎和商 业发 行版的 ksh 完全兼容, 这样 就可以在不用花 钱购买 版本的情况下 尝试 版本的性能了。

   4.csh

  cshLinux 大的内核,它由以William Joy 代表的共 47 位作者 成,共有52 个内部命令。 shell 是指向/bin/tcsh 这样 的一个shell ,也就是csh 就是tcsh

  5.zch

  zchLinux 最大的shell 之一,由Paul Falstad 完成,共有84 个内部命令。如果只是一般的用途,是没有必要安装这样shell 的。

3. shell 程序 设计 ( 部分 )

  其 命令 言交互式地解 行用 户输 入的命令只是 shell 功能的一个方面, shell 可以用来 行程序 设计 ,它提供了定 义变 量和参数 的手段以及丰富的程序控制 构。使用 shell 似于 DOS 中的批 理文件,称 shell script ,又叫 shell 程序或 shell 命令文件。

   1.shell 基本

   shell 的基本 法主要就是如何 入命令运行程序以及如何在程序之 shell 的一些参数提供便利手段来 行通

   (1) 出重定向

  在 Linux 中, 一个 程都有三个特殊的文件描述指 (standard input ,文件描述指 针为 0) (standard output ,文件描述指 针为 1) 错误输 (standard error ,文件描述指 针为 2) 三个特殊的文件描述指 使 程在一般情况下接收 端的 入,同 端来 出, Linux 也向使 用者提供可以使用普通的文件或管道来取代 设备 。在 shell 中,使用者可以利用 “>” “<” 出重定向。如:

   command>file :将命令的 果重定向到一个文件。

   command>&file :将命令的 错误输 出一起重定向到一个文件。

   command>>file :将 出的 果追加到文件中。

   command>>&file :将 出和 错误输 出的 构都追加到文件中。

   command

   (2) 管道 pipe

   pipe 可以在 出和 错误输 做代替工作, 这样 一来,可以将某一个程序的 出送到另一个程序的 入,其 法如下:

   command1| command2[| command3...]

  也可以 错误输 出一起送入管道:

   command1| &command2[|& command3...]

   (3) 前台和后台

  在 shell 下面,一个新 生的 程可以通 用命令后面的符号 “&” 来分 以前台和后台的方式来 行, 法如下:

   command

   生一个前台的 程,下一个命令 命令运行 束后才能 入。

   command &

   生一个后台的 程,此 程在后台运行的同 ,可以 入其他的命令。

   2 shell 程序的 量和参数

  像高 程序 设计语 言一 shell 也提供 明和使用 量的功能。 shell ,所有 量的取 都是一个字符串, shell 程序采用 $var 的形式来引用名 var 量的

   Shell 有以下几 基本 型的 量:

   (1)shell

   shell 就已 了一些和系 的工作 境有 量, 量用 户还 可以重新定 ,常用的 shell 量有:

   HOME :用于保存注册目 的完全路径名。

   PATH :用于保存用冒号分隔的目 路径名, shell 将按 PATH 量中 出的 序搜索 些目 ,找到的第一个与命令名称一致的可 行文件将被 行。

   TERM 端的 型。

   UID :当前用 标识 符,取 是由数字构成的字符串。

   PWD :当前工作目 绝对 路径名, 该变 量的取 cd 命令的使用而 化。

   PS1 :主提示符,在特 下,缺省的主提示符是 “#” ,在普通用 下,缺省的主提示符是 “$”

   PS2 :在 shell 接收用 户输 入命令的 程中,如果用 入行的末尾 “/” 然后回 ,或者当用 按回 车键时 shell 判断出用 户输 入的命令没有 助提示符,提示用 户继续输 入命令的其余部分,缺省的 助提示符是 “>”

   (2)

  用 可以按照下面的 规则 自己的 量:

   量名 =

  要注意的一点是,在定 义变 量名前不 加符号 “$” ,在引用 量的内容 时则应 量名前加 “$” ;在 给变 赋值时 ,等号两 一定不能留空格,若 量中本身就包含了空格, 整个字符串都要用双引号括起来。

  在 shell 程序 了使 量名和命令名相区 ,建 所有的 量名都用大写字母来表示。

  有 想要在 明一个 量并 一个特定 后就不在改 它的 可以用下面的命令来保 一个 量的只 性:

   readly 量名

  在任何 候,建立的 量都只是当前 shell 的局部 量,所以不能被 shell 运行的其他命令或 shell 程序所利用, export 命令可以将一局部 量提供 shell 行的其他命令使用,其格式

   export 量名

  也可以在 给变 赋值 的同 使用 export 命令:

   export 量名 =

  使用 export 明的 量,在 shell 以后运行的所有命令或程序中都可以 访问 到。

   (3) 位置参数

  位置参数是一 shell 程序的命令行中按照各自的位置决定的 量,是在程序名之后 入的参数。位置参数之 用空格分隔, shell 取第 一个位置参数替 程序文件中的 $1 ,第二个替 $2 ,依次 推。 $0 是一个特殊的 量,它的内容是当前 shell 程序的文件名,所以, $0 不是一个位 置参数,在 示当前所有的位置参数 是不包括 $0 的。

   (4) 义变

   义变 量和 量相 似,也是在 shell 就定 了的 量,所不同的是,用 只能根据 shell 的定 来使用 量,而不能重定 它。所有 义变 量都是由 $ 符和另一个符号 成的,常用的 shell 义变 量有:

   $# :位置参数的数量

   $* :所有位置参数的内容

   $? :命令 行后返回的状

   $$ :当前 程的 程号

   $! :后台运行的最后一个 程号

   $0 :当前 行的 程名

  其中, “$?” 用于 检查 上一个命令 行是否正确 ( Linux 中,命令退出状 态为 0 表示 命令正确 行,任何非 0 表示命令出 )

   “$$” 量最常 的用途是用作 临时 文件的名字以保 证临时 文件不会重

   (5) 参数置

   shell 提供了参数置 能力以便用 可以根据不同的条件来 给变 不同的 。参数置 量有四 量通常与某一个位置参数相 系,根据指定的位置参数是否已 经设 决定 量的取 ,它 法和功能分 如下。

   a. =${ 参数 -word} :如果 置了参数, 用参数的 换变 量的 ,否 word 。即 这种变 量的 等于某一个参数的 ,如果 参数没有 置, 则变 量就等于 word

   b. =${ 参数 =word} :如果 置了参数, 用参数的 换变 量的 ,否 置成 word 然后再用 word 参数的 。注意,位置参数不能用于 这种 方式,因 shell 程序中不能 位置参数 赋值

   c. =${ 参数? word} :如果 置了参数, 用参数的 换变 量的 ,否 word 并从 shell 中退出,如果省略了 word 则显 准信 息。 这种变 量要求一定等于某一个参数的 ,如果 参数没有 置,就 示一个信息,然后退出,因此 这种 方式常用于出 指示。

   d. =${ 参数 +word} :如果 置了参数, word 换变 量,否 行置

  所有 形式中的 参数 既可以是位置参数,也可以是另一个 量,只是用位置参数的情况比 多。

接下来以 bash 例向大家介 shell 程序 设计 的高 部分: shell 程的流程控制、 调试 方法及 shell 程序的运行方法, 便也向大家介 一下 bash 的内部命令。

  四、 shell 程序 设计 的流程控制

  和其他高 程序 设计语 言一 shell 提供了用来控制程序 行流程的命令,包括条件分支和循 环结 构,用 可以用 些命令建立非常 复杂 的程序。

  与 传统 言不同的是, shell 用于指定条件 的不是布 表达式而是命令和字符串。

   1.test 测试 命令

   test 命令用于 检查 某个条件是否成立,它可以 行数 、字符和文件三个方面的 测试 ,其 测试 符和相 的功能分 如下:

   (1) 值测试

   -eq :等于 则为

   -ne :不等于 则为

   -gt :大于 则为

   -ge :大于等于 则为

   -lt :小于 则为

   -le :小于等于 则为

   (2) 字符串 测试

   = :等于 则为

   != :不相等 则为

   -z 字符串:字符串 伪则为

   -n 字符串:字符串 度不 伪则为

   (3) 文件 测试

   -e 文件名:如果文件存在 则为

   -r 文件名:如果文件存在且可 读则为

   -w 文件名:如果文件存在且可写 则为

   -x 文件名:如果文件存在且可 则为

   -s 文件名:如果文件存在且至少有一个字符 则为

   -d 文件名:如果文件存在且 录则为

   -f 文件名:如果文件存在且 普通文件 则为

   -c 文件名:如果文件存在且 字符型特殊文件 则为

   -b 文件名:如果文件存在且 为块 特殊文件 则为

  另外, Linux 提供了与 (“ ”) 、或 (“-o) 、非 (“-a”) 三个 逻辑 操作符用于将 测试 条件 接起来,其 级为 最高, “-a” 次之, “-o” 最低。

  同 bash 也能完成 简单 的算 运算,格式如下:

   $[expression]

  例如:var1=2

  var2=$[var1*10+1]

   var2 值为 21

   2.if 条件

   shell 程序中的条件分支是通 if 条件 句来 实现 的,其一般格式

   if 条件命令串

   then

  条件 的命令串

   else

  条件 的命令串

   fi

   3.for

   for 环对 一个 量的可能的 行一个命令序列。 赋给变 量的几个数 既可以在程序内以数 列表的形式提供,也可以在程序以外以位置参数的形式提供。 for 的一般格式

   for 量名

   [in 列表 ]

   do

  若干个命令行

   done

   量名可以是用 户选择 的任何字符串,如果 量名是 var in 之后 出的数 序替 命令列表中的 $var 。如果省略了 in 则变 var 的取 将是位置参数。 对变 量的 一个可能的 赋值 都将 do done 的命令列表。

   4.while until

   while until 命令都是用命令的返回状 态值 来控制循 的。 While 的一般格式

   while

  若干个命令行 1

   do

  若干个命令行 2

   done

  只要 while 若干个命令行 1” 中最后一个命令的返回状 态为 真, while 继续执 do...done 若干个命令行 2”

   until 命令是另一 环结 构,它和 while 命令相似,其格式如下:

   until

  若干个命令行 1

   do

  若干个命令行 2

   done

   until while 的区 在于: while 在条件 时继续执 行循 ,而 until 是在条件 时继续执 行循

   Shell 提供了 true false 两条命令用于建立无限循 环结 构的需要,它 的返回状 总为 0 总为 0

   5.case 条件 选择

   if 条件 句用于在两个 选项 定一 ,而 case 条件 选择为 提供了根据字符串或 量的 从多个 选项 选择 的方法,其格式如下:

   case string in

  exp-1)

  若干个命令行 1

  ;;

   exp-2)

  若干个命令行 2

  ;;

   ……

   *)

  其他命令行

   esac

   shell 过计 算字符串 string ,将其 果依次和表达式 exp-1 exp-2 行比 ,直到找到一个匹配的表达式 止,如果找到了匹配 项则执 行它下面的命令直到遇到一 分号 ( ;; ) 止。

  在 case 表达式中也可以使用 shell 的通配符 (“*” “[ ]”) 。通常用 “*” case 命令的最后表达式以便使在前面找不到任何相 的匹配 项时执 其他命令行 的命令。

   6. 无条件控制 break continue

   break 用于立即 止当前循 行,而 contiune 用于不 行循 中后面的 句而立即 始下一个循 行。 两个 句只有放在 do done 才有效。

   7. 函数定

  在 shell 可以定 函数。函数 实际 上也是由若干条 shell 命令 成的,因此它与 shell 程序形式上是相似的,不同的是它不是一个 独的 程,而是 shell 程序的一部分。函数定 的基本格式

   functionname

   {

  若干命令行

   }

   用函数的格式

   functionname param1 param2……

   shell 函数可以完成某些例行的工作,而且 可以有自己的退出状 ,因此函数也可以作 if while 等控制 构的条件。

  在函数定 义时 不用 参数 明,但在 用函数 可以 有参数,此 shell 将把 些参数分 别赋 予相 的位置参数 $1 $2 ... $*

   8. 命令分

  在 shell 中有两 命令分 的方法: “()” “{}” ,前者当 shell () 中的命令 将再 建一个新的子 程,然后 个子 程去 括弧中的命令。当用 行某个命令 不想 命令运行 时对 集合 ( 如位置参数、 量、当前工作目 ) 的改 影响到下面 句的 ,就 应该 些命令放在 括弧中, 这样 就能保 所有的改 生影响,而父 程不受任何干 {} 用于将 行的命令的 果用于另一个命令的 ( 管道 方式 ) 。当我 要真正使用 括弧和花括弧 ( 算表达式的 ) 需要在其前面加上 转义 (/) 以便 shell 知道它 不是用于命令 行的控制所 用。

   9. 信号

   trap 命令用于在 shell 程序中捕捉到信号,之后可以有三 方式:

   (1) 行一段程序来 一信号

   (2) 接受信号的默 操作

   (3) 视这 一信号

   trap 上面三 方式提供了三 基本形式:

  第一 形式的 trap 命令在 shell 接收到 signal list 中数 相同的信号 ,将 行双引号中的命令串。

   trap 'commands' signal-list

   trap "commands" signal-list

   了恢 信号的默 操作,使用第二 形式的 trap 命令:

   trap signal-list

  第三 形式的 trap 命令允 信号:

   trap " " signal-list

  注意:

   (1) 信号 11( ) 不能捕捉,因 shell 本身需要捕捉 信号去 行内存的 转储

   (2) trap 中可以定 义对 信号 0 ( 实际 上没有 个信号 ) shell 程序在其 ( exit ) 时发 信号。

   (3) 在捕捉到 signal-list 中指定的信号并 行完相 的命令之后,如果 些命令没有将 shell 程序 止的 shell 程序将 继续执 行收到信号 行的命令后面的命令, 这样 将很容易 shell 程序无法 止。

  另外,在 trap 句中, 引号和双引号是不同的,当 shell 程序第一次碰到 trap ,将把 commands 中的命令 描一遍。此 commands 是用 引号括起来的 ,那 shell 不会 commands 中的 量和命令 行替 ,否 commands 中的 量和命令将用当 具体 的 来替

  五、运行 shell 程序的方法

  用 可以用任何 编辑 程序来 shell 程序。因 shell 程序是解 释执 行的,所以不需要 编译 装配成目 程序,按照 shell 程的 例,以 bash 例,程序的第一行一般 “# /bin/bash” ,其中 # 表示 行是注 shell 运行 号之后的命令并用文件的其余部分作 为输 入,也就是运行 /bin/bash /bin/bash shell 程序的内容。

   shell 程序的方法有三

   (1)sh shell 程序文件名

   这种 方法的命令格式

   bash shell 程序文件名

   这实际 上是 用一个新的 bash 命令解 程序,而把 shell 程序文件名作 参数 传递给 它。新启 shell 将去 指定的文件, 行文件中列出的命令,当所有的命令都 行完 束。 方法的 点是可以利用 shell 调试 功能。

   (2)sh

  格式

   bash

   这种 方式就是利用 入重定向,使 shell 命令解 程序的 入取自指定的程序文件。

   (3)chmod 命令使shell 程序成 行的

  一个文件能否运行取决于 文件的内容本身可 行且 文件具有 shell 程序,当用 编辑 器生成一个文件 ,系 统赋 予的 限都是 644(rw-r-r--) ,因此,当用 需要运行 个文件 ,只需要直接 入文件名即可。

  在 运行 shell 程序的方法中,最好按下面的方式 选择 :当 建立一个 shell 程序, 它的正确性 没有把握 当使用第一 方式 调试 。当一个 shell 程序已 经调试 使用第三 方式把它固定下来,以后只要 入相 的文件名即可,并可被另一个程序所 用。

六、 bash 程序的 调试

  在 程中 免会出 ,有的 候, 调试 程序比 写程序花 时间还 要多, shell 程序同 如此。

   shell 程序的 调试 主要是利用 bash 命令解 程序的 选择项 bash 的形式是:

   bash - 选择项 shell 程序文件名

  几个常用的 选择项 是:

   -e :如果一个命令失 就立即退出

   -n 入命令但是不 行它

   -u :置 换时 把未 置的 量看作出

   -v :当 shell 入行 把它 们显 示出来

   -x 行命令 把命令和它 的参数 示出来

  上面的所有 选项 也可以在 shell 程序内部用 “set - 选择项 的形式引用,而 “set + 选择项 将禁止 该选择项 起作用。如果只想 程序的某一部分使用某些 选择项时 可以将 部分用上面两个 句包 起来。

   1. 未置 量退出和立即退出

  未置 量退出特性允 户对 所有 检查 ,如果引用了一个未 赋值 量就 shell 程序 的 行。 shell 通常允 未置 量的使用,在 这种 情况下, 量的 值为 空。如果 置了未置 量退出 选择项 一旦使用了未置 量就 错误 信息,并 止程 序的运行。未置 量退出 选择项为 “-u”

  当 shell 运行 ,若遇到不存在或不可 行的命令、重定向失 或命令非正常 束等情况 ,如果 未 重新定向, 信息会打印在 端屏幕上,而 shell 程序仍将 继续执 行。要想在 错误发 迫使 shell 程序立即 束,可以使用 “-e” 选项 shell 程序的 行立即 止。

   2.shell 程序的跟踪

   调试 shell 程序的主要方法是利用 shell 命令解 程序的 “-v” “-x” 选项 来跟踪程序 的 行。 “-v” 选择项 使 shell 行程序的 程中,把它 入的 一个命令行都 示出来,而 “-x” 选择项 使 shell 行程序的 程中把它 行的 一个命令在行首用一个 “+” 加上命令名 示出来。并把 一个 量和 该变 量所取的 示出来,因此,它 的主要区 在于:在 行命令行之前无 “-v” 打印出命令行的原始内容,而有 “-v” 打印出 经过 后的命令行的内容。

  除了使用 shell “-v” “-x” 选择项 以外, 可以在 shell 程序内部采取一些 的措施。例如,可以在 shell 程序的一些 关键 地方使用 echo 命令把必要的信息 示出来,它的作用相当于 C 言中的 printf 句, 这样 就可以知道 程序运行到什 地方及程序目前的状

  七、 bash 的内部命令

   bash 命令解 程序包含了一些内部命令。内部命令在目 列表 是看不 的,它 shell 本身提供。常用的内部命令有: echo eval exec export readonly read shift wait 和点 (.) 。下面 简单 其命令格式和功能。

   1.echo

  命令格式:echo arg

  功能:在屏幕上打印出由arg 指定的字符串。

  2.eval

  命令格式:eval args

  功能:当 shell 程序 行到 eval shell 入参数 args ,并将它 们组 合成一个新的命令,然后 行。

   3.exec

  命令格式: exec 命令命令参数

  功能:当 shell 行到 exec ,不会去 建新的子 程,而是 行指定的命令,当指定的命令 行完 该进 程,也就是最初的 shell 止了,所以 shell 程序中 exec 后面的 句将不再被 行。

   4.export

  命令格式: export 量名或: export 量名 =

  功能: shell 可以用 export 把它的 量向下 入子 shell 从而 承父 程中的 量。但子 shell 不能用 export 把它的 量向上 入父 shell

  注意:不 任何 量名的 export 句将 示出当前所有的 export 量。

   5.readonly

  命令格式: readonly 量名

  功能:将一个用 shell 标识为 不可 的。不 任何参数的 readonly 命令将 示出所有只 shell 量。

   6.read

  命令格式:

   read 量名表

  功能:从 设备读 入一行,分解成若干字, 赋值给 shell 程序内部定 量。

   7.shift

  功能: shift 句按如下方式重新命名所有的位置参数 量: $2 $1 $3 $2…… 在程序中 使用一次 shift 句,都使所有的位置参数依次向左移 一个位置,并使位置参数 “$#” 减一,直到减到 0

   8.wait

  功能:是 shell 等待在后台启 的所有子 束。 Wait 的返回值总 是真。

  9.exit

  功能:退出shell 程序。 exit 之后可有 选择 地指定一个数字作 返回状

   10.“.”( )

  命令格式: . Shell 程序文件名

  功能:使shell 入指定的shell 程序文件并依次 行文件中的所有 句。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章