shell 脚本编程


shellshell 脚本编程 脚本编程 aqiuaqiu LinuxLinux 基本命令基本命令  cpcp 命令 命令 该命令的功能是将给出的文件或目录拷贝该命令的功能是将给出的文件或目录拷贝 到另一文件或目录中,功能十分强大。 到另一文件或目录中,功能十分强大。 语法: 语法: cp [cp [ 选项选项 ] ] 源文件或目录 目标文件源文件或目录 目标文件 或目录 或目录  mvmv 命令命令 用户可以使用用户可以使用 mvmv 命令来为文件或目录改名命令来为文件或目录改名 或将文件由一个目录移入另一个目录中。或将文件由一个目录移入另一个目录中。 语法:语法: mv [mv [ 选项选项 ] ] 源文件或目录 目标文件源文件或目录 目标文件 或目录 或目录  rmrm 命令命令 用户可以用用户可以用 rmrm 命令删除不需要的文件或者命令删除不需要的文件或者 目录。 目录。 语法:语法: rm [rm [ 选项选项 ] ] 文件 文件 如果没有使用如果没有使用 - r- r 选项,则选项,则 rmrm 不会删除目录。不会删除目录。  mkdirmkdir 和和 rmdirrmdir 语法:语法: mkdir [mkdir [ 选项选项 ] dir-name ] dir-name 语法:语法: rmdir [rmdir [ 选项选项 ] dir-name ] dir-name  cd cd 命令 命令 功能:改变工作目录。功能:改变工作目录。 语法:语法: cd [directory]cd [directory]  ls ls 命令命令 lsls 是英文单词是英文单词 listlist 的简写,其功能为列出目的简写,其功能为列出目 录的内容。该命令类似于录的内容。该命令类似于 DOSDOS 下的下的 dirdir 命命 令。令。 语法:语法: ls [ls [ 选项选项 ] [] [ 目录或是文件目录或是文件 ] ]  susu 命令命令 这个命令非常重要。它可以让一个普通用这个命令非常重要。它可以让一个普通用 户拥有超级用户或其他用户的权限,也可户拥有超级用户或其他用户的权限,也可 以让超级用户以普通用户的身份做一些事以让超级用户以普通用户的身份做一些事 情。普通用户使用这个命令时必须有超级情。普通用户使用这个命令时必须有超级 用户或其他用户的口令。用户或其他用户的口令。  该命令的一般形式为: 该命令的一般形式为: su [su [ 选项选项 ] [] [ 使用者使用者 帐号帐号 ]]  psps 命令命令 显示系统中执行的程序。显示系统中执行的程序。 语法:语法: ps [ps [ 选项选项 ]]  killkill 命令命令 删除执行中的程序删除执行中的程序 语法:语法: kill [kill [ 选项选项 ] PID] PID  grepgrep 命令命令 搜寻输出的特定文字搜寻输出的特定文字 语法:语法: grep grep 字符串字符串 例:例: ps aux | grep matlabps aux | grep matlab kill PIDkill PID  echoecho 命令 命令 echoecho 命令的功能是在显示器上显示一段文命令的功能是在显示器上显示一段文 字,一般起到一个提示的作用。字,一般起到一个提示的作用。 该命令的一般格式为: 该命令的一般格式为: echo [ -n ] echo [ -n ] 字符串字符串  clearclear 命令命令 clearclear 命令的功能是清除屏幕上的信息,它命令的功能是清除屏幕上的信息,它 类似于类似于 DOSDOS 中的 中的 clscls 命令。清屏后,提示命令。清屏后,提示 符移动到屏幕左上角。符移动到屏幕左上角。 ShellShell 的基本知识(的基本知识( 11 ))  shellshell 提示符及其环境 提示符及其环境 提示符:提示符: $ $ 环境:环境: LinuxLinux ,, UnixUnix ,, DosDos 等等等等  ShellShell 其实就是一个解释执行命令的程序,其实就是一个解释执行命令的程序, 所谓所谓 shellshell 编程其实就是用一定的语法将各编程其实就是用一定的语法将各 种基本的命令组合起来,让种基本的命令组合起来,让 shellshell 程序去解程序去解 释执行。释执行。 ShellShell 的基本知识(的基本知识( 22 ))  同传统的编程语言一样,同传统的编程语言一样, shellshell 提供了很多提供了很多 特性,这些特性可以使你的特性,这些特性可以使你的 shell script shell script 编程更为有用,如:数据变量、参数传递编程更为有用,如:数据变量、参数传递 、判断、流程控制、数据输入和输出,子、判断、流程控制、数据输入和输出,子 程序及以中断处理等。 程序及以中断处理等。 如何执行如何执行 shellshell 程序程序  ShellShell 程序(程序( ***.sh***.sh ))  执行这个命令时执行这个命令时 (1) #./***.sh (1) #./***.sh (2) #chmod u+x ***.sh (2) #chmod u+x ***.sh #***.sh#***.sh (3) #sh ***.sh(3) #sh ***.sh 常量常量  字符串,例如“字符串,例如“ Hello WorldHello World !”。!”。  数字,例如数字,例如 705705 ,, 2323 。。 (好像就这么多,我的理解)(好像就这么多,我的理解) 变量变量  shellshell 编程中它们是没有类型的,简称弱类编程中它们是没有类型的,简称弱类 型编程语言,在这个变量中可以保含一个型编程语言,在这个变量中可以保含一个 数字,一个字符串,一个单词等。你并不数字,一个字符串,一个单词等。你并不 需要声明这个变量,它会在需要声明这个变量,它会在引用引用这个变量这个变量 时创建它。 时创建它。 STR="Hello World!" STR="Hello World!" echo $STR echo $STR 局部变量局部变量  局部变量一般是指写在函数中的变量,他局部变量一般是指写在函数中的变量,他 的生命力是有限的。局部变量比较好理解的生命力是有限的。局部变量比较好理解 ,这里就不再多介绍了。,这里就不再多介绍了。 从键盘输入变量值从键盘输入变量值  使用使用 readread 命令命令 read var1 var2 … varnread var1 var2 … varn 注释注释  ShellShell 编程中的注释以编程中的注释以 ## 开头 开头 数字运算 数字运算  主要是指整数运算。主要是指整数运算。 exprexpr 命令可以将字符命令可以将字符 型变量转换为整数进行操作型变量转换为整数进行操作 expr integer operator integer expr integer operator integer 其中其中 operatoroperator 为为 + - * / %, + - * / %, 但对但对 ** 的使用要的使用要 用转义符用转义符 \,\, 如: 如: $expr 4 \* 5 $expr 4 \* 5 20 20 $int=`expr 5 + 7` $int=`expr 5 + 7` $echo $int $echo $int 1212 逻辑运算逻辑运算  testtest 进行逻辑运算,用进行逻辑运算,用 [ ][ ] 括起来就是括起来就是 testtest 运运 算算 int1 -eq int2 int1 -eq int2 相等相等 ? ? int1 -ne int2 int1 -ne int2 不等不等 ? ? int1 -gt int2 int1 > int2 ? int1 -gt int2 int1 > int2 ? int1 -ge int2 int1 >= int2 ? int1 -ge int2 int1 >= int2 ? int1 -lt int2 int1 < int2 ? int1 -lt int2 int1 < int2 ? int1 -le int2 int1 <= int2 int1 -le int2 int1 <= int2 双引号及单引号 双引号及单引号  $echo "$HOME $PATH" $echo "$HOME $PATH" /home/hbwork opt/kde/bin:/usr/local/bin:/home/hbwork opt/kde/bin:/usr/local/bin:  $echo '$HOME $PATH' $echo '$HOME $PATH' $HOME $PATH $HOME $PATH 空格空格  由于由于 shellshell 对命令中的多余的空格不作任何对命令中的多余的空格不作任何 处理 ,而用引号括起来则可以防止处理 ,而用引号括起来则可以防止 shellshell 去去 掉这些空格。掉这些空格。  $ str1=abcd $ str1=abcd $ str2="abcd " $ str2="abcd " 分支结构分支结构 ifif 嵌套及嵌套及 elifelif 结构(结构( 11 ))  if [ variable = value ] if [ variable = value ] then then command command else else if [ variable = value ] if [ variable = value ] then then command command else else command command fi fi ifif 嵌套及嵌套及 elifelif 结构(结构( 22 ))  if [ variable = value ] if [ variable = value ] then then command command elif [ variable = value ] elif [ variable = value ] then then command command fi fi CaseCase 语句语句  case value in case value in pattern1) pattern1) command;; command;; pattern2) pattern2) command;; command;; ... ... patternn) patternn) command; command; esac esac And And 和 和 OrOr  command1 && command2 command1 && command2  command1 || command2 command1 || command2 循环语句循环语句 ForFor 循环循环  for var in arg1 arg2 ... argn for var in arg1 arg2 ... argn do do command command .... .... command command done done ForFor 循环示例循环示例  int=1int=1 for $int in 1 2 3 4 5for $int in 1 2 3 4 5 dodo sq=`expr $int \* $int` sq=`expr $int \* $int` echo $sq echo $sq int=`expr $int + 1` int=`expr $int + 1` donedone whilewhile 循环 循环  while command while command do do command command command command command command ... ... done done WhileWhile 循环的示例循环的示例  int=1 int=1 while [ $int -le 5 ] while [ $int -le 5 ] do do sq=`expr $int \* $int` sq=`expr $int \* $int` echo $sq echo $sq int=`expr $int + 1` int=`expr $int + 1` done done untiluntil 循环结构 循环结构  until command until command do do command command command command .... .... command command done done UntilUntil 循环示例循环示例  int=1 int=1 until [ $int -gt 5 ] until [ $int -gt 5 ] do do sq=`expr $int \* $int` sq=`expr $int \* $int` echo $sq echo $sq int=`expr $int + 1` int=`expr $int + 1` done done 从循环中退出: 从循环中退出: breakbreak 和和 continuecontinue 命令 命令  break break 立即退出循环 立即退出循环 continue continue 忽略本循环中的其他命令,继续下忽略本循环中的其他命令,继续下 一下循环 一下循环 函数 (子过程)函数 (子过程)  funcname() funcname() { { command command ... ... command; #command; # 分号 分号 } } 函数示例函数示例  setup () setup () { command list ; } { command list ; } do_data () do_data () { command list ; } { command list ; } setup setup do_data do_data shellshell 程序的调试 程序的调试  使用使用 -x-x 进行跟踪执行,执行并显示每一条进行跟踪执行,执行并显示每一条 指令。 指令。 谢谢!谢谢!
还剩41页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

leeewei

贡献于2012-09-11

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf