登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

银河里的星星

落在人间

 
 
 

日志

 
 

shell基本语法  

2009-06-06 10:21:15|  分类: 程序设计语言 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

注释
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

 

  评论这张
 
阅读(1193)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018