程序设计语言

shell基本语法

2009年6月6日 阅读(272)

注释
1.#

类型系统

2.字符串,使用” "与 ‘ ‘不同,"$var"内的变量仍然会被替换,’$var’则不会
3.变量,也不需要提前声明,直接=,变量类型只是文本字符,系统不会自动辨认为数字。变量作用域:与普通的高级语言不同,函数中声明的变量是全局变量。如果要声明局部变量要使用关键字local

程序结构

6.if …;then

    …
  elif …;then
    …..

  if

7.while ;do

 …

   done
8.for var in … do
 …

done
9.case …in

    …)  …;;

    esac

10.select var in ….;do

     break;

     done

11,here docment

cat << HELP

…….

HELP

12.functionname(){

………………

}

函数参数通过$1 $2来传递

常用函数,运算符

shell的语法简单,本身的内容很少,主要借助于linux的其他工具。

数学运算expr:m=1;m=expr m + 1
>:把STDOUT重定向到一个文件
<:把STDIN重定向到一个文件
>>:把STDOUT追加到一个文件尾
|:从一个程序或进程中获取输出并发送到另一个程序或进程
export命令用于修改shell环境e.g. export name=value

 

常用特殊变量

?:表示前一个命令的退出状态
$:表示当前系统进程的PID
-:当前shell启动的时候调用的选项
!:在后台运行的上一命令的PID
o:当前脚本文件名
1-9 :调用当前脚本的时候给出的第1-9个命令行参数
open file print raw_input

 

条件测试部分

test命令用于计算条件的值,包含很多选项,可以用于计算所有条件类型。
e.g.
if ( test $color = "purple" )=if [ $color="purple" ]
if ( test -e filename )=if [ -e filename ]

-d:指定目录存在
-e:指定文件存在
-f:指定文件存在并且是普通文件
-G:文件所有者ID和文件ID相匹配
-nt:前一个文件比后一个文件新 file1 -nt file2
-ot:前一个文件比后一个文件旧
-O:执行命令用户是文件所有者
-r:执行命令用户对文件有读取权限
-s:指定文件存在并且不为空
-w:执行命令用户对文件有写入权限
-x:执行命令用户对文件有执行权限

getopts

该命令用于检查传递给命令行的参数是否有效
语法:getopts optstring name
getopts通过两个变量跟踪所有事情
OPTIND:保存下一个需要处理的参数的索引
OPTARG:如需一个参数,就放到这个变量中
大多数情况,getpots用于在某些类型的循环中检查传递给脚本的选项和参数
e.g.
while getopts "xy:z" name
do
echo "$name" $OPTIND $OPTARG
done
运行 ~/bin/get.sh -xy "one" -z "two"
结果
x 1
y 3 one
z 5 two

 

You Might Also Like