首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:资料 参考手册 服务器
 → 当前位置:首页>编程开发>shell>正文

linux shell 编程基础

OKLinux www.oklinux.cn 2006-08-28 来源:oklinux收集整理 会员收藏 游客收藏

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、...及$*。

上一篇:Linux快速编辑Shell命令行   下一篇:免费unix/linux shell帐号

收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·免费unix/linux shell帐号
·Linux快速编辑Shell命令行
·常用Linux Shell技巧集锦
·Linux循序渐进---shell
·UNIX/LINUX SHELL 正则表达式语法
·Shell语句
·Linux shell编程的一些注意事项
·bash的内部命令
·面向 DBA 的 Linux Shell 脚本简介
·bash简介
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·常用Linux Shell技巧集锦
·shell编程实例三:一个简
·Shell编程基础
·Shell 编程实例集锦
·Process priority and con
·Bash 实例:探讨 ebuild
·Linux快速编辑Shell命令行
·Linux下的shell编程入门
·Shell脚本调试技术
·使用 Bash shell 脚本进行
最新文章
·Linux Shell脚本Ldd命令原
·Shell脚本显示当前网络连
·Shell脚本 实现vi/cp/mv前
·Linux解释器原理详细介绍
·Shell脚本调试技术
·Linux中使用Shell脚本去掉
·Linux操作系统下使用yum升
·UNIX和Linux Shell正则表
·重新定义Expect在Cron中的
·Shell Script(bash)--教学
·如何提高Import命令的性能
·Shell 计算明天和昨天日期
·Linux 下对于passwd 命令
·VI高级命令集锦
·Linux命令Man解释:chsh :

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有