shell语法
基本语法列表
#linux组成:内核+工具 #linux启动: 1. getty:提示登录名和密码,输入之后调用login 2. login:login验证用户名和密码,然后调用shell 3. shell:用户与系统的交互接口 #文件的分类:普通文件、目录、特殊文件。 1. 普通文件的:ls cat cp mv rm 2. 目录:ls mkdir rmdir cp mv rm #文件的属性:权限、所有者、组 1. 权限:chmod 2. 所有者、组:chown chgrp #进程:前台,后台 1. & fg bg nohup(终端断开同样执行) 2. jobs ps top kill 3. exec #变量:普通变量、数组变量 1. $ 2. 数组变量赋值:ksh:set -A name value1 value2 value3,bash: name(value1 value2 value3) 3. 数组的访问:${name[index]},${name[*]},${name[*]} 4. readonly 5. set unset #变量:局部变量、环境变量、Shell变量 1. shell变量:PWD UID SHLVL REPLY RANDOM SECONDS IFS PATH HOME 2. export #替换:文件名替换、变量替换 1. 文件名的替换:* ? [characters] 2. 变量替换 ${parameter:-word} 若parameter为空或未设置,使用word代替parameter进行替换,parameter的值不变 ${parameter:+word} 若parameter设置了,使用word代替parameter进行替换,parameter的值不变 ${parameter:=word} 若parameter为空或未设置,则parameter设置为word ${parameter:?message} 若parameter为空或未设置,这message作为标准错误打印出来 3. 命令替换:`command` 4. 算术替换:$((express)) #参数: 1. $0:程序名字 2. $n:第n个参数 3. $#:参数数量 4. $*:所有的参数 5. $@:全部 6. $?: 7. $$: 8. $!: 9. shift #输入 1. 向屏幕:echo printf 2. 重定向输出:> >> | 3. 重定向输入:< 4. read #文本过滤 1. head tail grep sort uniq tr 2. sed awk #常用工具 eval : type sleep find xargs expr #控制流 1. if if list1 then list2 elif list3 then list4 else list5 fi 2. case case word in pattern1) list1 ;; pattern2) list2 ;; esac 3. while while command do list done 4. until until command do list done 5. for for name in value1 value2 ... valueN do list done 6. select select name in value1 value2 ... valueN do list done 7. break continue #判断 1. 判断 test [ ] 2. 文件判断 -f file:文件是否存在 -d path:路径是否存在 -r file:是否可读 -w file:是否可写 -x file:是否可执行 3. 字符串判断 -z string:字符长度为0 -n string:字符长度不为0 string1 = string2:相等 string1 != string2:不相等 4. 数字比较 -eq:= -ne:<> -lt:< -gt:> -le:<= -ge:>= 5. 逻辑运算 !expr:非 expr1 -a expr2:且 expr1 -o expr2:或 && || #函数 1. 定义 name( ) { list ; } #tips #读文件 while read Line do echo $Line done < file #find find * -name '*.sh' #输入一长段提示 echo 'one two' echo 'one\ntwo' cat <<EOF NICE DAY IN THE WORLD. THIS IS A VERY NICE DAY. EOF #最后一个参数的求法 eval last=\${$#}
http://www.cnblogs.com/ola2010/