shell脚本语法.doc_第1页
shell脚本语法.doc_第2页
shell脚本语法.doc_第3页
shell脚本语法.doc_第4页
shell脚本语法.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

脚本的后缀还是写 .sh 虽然不是必须,但一眼看见易于知晓是脚本shell简单的说就是一个命令解释器,用于用户和linux内核的沟通。shell中所执行的命令相当于fork出的子进程一样。建立脚本。#!/bin/bash符号#!用来告诉系统它后面的参数是用来执行该文件的程序,bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本Xxxx/脚本内容chmod 777 file之后就可以执行了1.基础# /shell脚本注释符号二:变量1.变量种类:linux下变量类型只有两种数字型和字符串型2.声明变量declare varname声明一个局部变量varname,也可以一次声明多个同类型的变量declare var1 var2 var3仅创建变量的程序能使用的变量是时局部变量export varname2保留字export使得变量可由环境存取。即这个变量可以和系统中的其他程序共享。?这里不会3.变量赋值,引用变量时前面要加 $ 将数值赋给变量,可以不声明变量直接赋值如let var=1000*注意:等号两端不能有空格let后面不加&号?待比如 i+:delcare i=1let i=”$i+1将字符串赋给变量必须先声明变量,且赋值在同一条语句,赋的值必须用双引号引起declarevar=100-100-100echo $varHOME=/home /注意赋值不要有空格HOME_LIST=$(ls /home) /把命令的执行结果赋值给变量ehco $HOME /$ 符号是获得变量HOME的值系统变量:$0 这个程序的执行名字$n 这个程序的第n个参数值,n=1.9$* 这个程序的所有参数$# 这个程序的参数个数$ 这个程序的PID$! 执行上一个背景指令的PID$? 上一个指令的返回值4环境变量由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。三:运算符1.linux有三类运算符:算术运算符:+ -* / %逻辑运算符:! & |比较运算符算术运算符:let sum=“$a + $b注意:等号两边没空格加号两边有空格。且有关键字 let不然sum是字符算100 + 200的形式。逻辑运算符:比较运算符:-eq:等于-ne:不等于-gt:大于-ge:大于等于-lt:小于-le:小于等于let a=1000let b=400文件比较运算符-e filename 如果 filename 存在,则为真 -e /var/log/syslog -d filename 如果 filename 为目录,则为真 -d /tmp/mydir -f filename 如果 filename 为常规文件,则为真 -f /usr/bin/grep -L filename 如果 filename 为符号链接,则为真 -L /usr/bin/grep -r filename 如果 filename 可读,则为真 -r /var/log/syslog -w filename 如果 filename 可写,则为真 -w /var/mytmp.txt -x filename 如果 filename 可执行,则为真 -L /usr/bin/grep filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 /tmp/install/etc/services -nt /etc/services filename1 -ot filename2 如果 filename1 比 filename2 旧,则为真 /boot/bzImage -ot arch/i386/boot/bzImage 字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)-z string 如果 string 长度为零,则为真 -z $myvar -n string 如果 string 长度非零,则为真 -n $myvar string1 = string2 如果 string1 与 string2 相同,则为真 $myvar = one two three string1 != string2 如果 string1 与 string2 不同,则为真 $myvar != one two three if $a-gt $b 注意空格【】也需要空出来貌似除了=号不需要3.if语句if 22 -lt 33 then /注意空格echo 22 less than 33elseecho nofi /if语句的结束4.case语句case:把保留字case右边的值和比括号左边的值比较case $varname invalue1)/数字判断直接是1)字符串判断写“1”).; /!两个分号不能省略,作为一种情况的结束。value2).;*)/相当于default:默认执行的.esacecho enter a numberread ans /读取一个变量readcase $ans in1)echo you numer is $ans; /注意符号是两个 ;2)echo you number is 2;3-9)echo you number is $ans;*) /*通配符echo othersesac3.while语句while .do.done4.forin循环for friend in xdw xdw2do.done另外使用break跳出循环使用cotinue到达循环的开始6.bash中几种循环6.1. for name in word ; do list ; done6.2. for ( expr1 ; expr2 ; expr3 ) ; do list ; done /注意有2层括号6.3 while expr do list; done其中list简单说就是一串由操作符(operator ;、&、&、|)分各给出一个简单例子:1.for filename in $(ls)docat $filenamedone2.for(i=0; i10; i+)doecho $idone3.x=1sum=0while $x -le 10 /注意 两边的空格dolet sum=sum+$x /shell中算术计算使用letlet x=x+1doneecho $sum4.函数函数定义格式function functionnamecommand;command;函数内部$1表示传入的第一个参数, $2表示传入的第二个参数使用参数之前要先验证传入参数的个数正确与否$#表示传入参数个数的总数。函数内部 return数字作为返回值函数体外 $?表示上一个函数返回的返回值五:用户交互1、clear是清屏2.readvarname将键盘输入的内容保存到变量varname中,默认为字符串。3.数据正常时流向屏幕,显示在屏幕上。改变数据的正常流向,将其流向其他地方,比如文件中。这个过程叫重定向。标准输入:键盘标准输出:屏幕从文件获取内容也叫重定向。 xdw.dat大于号()将内容输出到xdw.dat这个文件中去。1.若文件不存在,则创建一个新的文件。2.若文件存在,则替换掉文件的原有内容。echo ”hello ,xdw xdw.dat双大于号将内容输出到xdw.dat这个文件中,但是是将内容添加到文件的末尾,而不清除原有数据。所以使用双大于号。文件不存在的时候同样会创建文件。2 :将所有的错误信息重定向到一个文件中去。(自己sb了。之前问彬哥log信息在屏幕上刷的太快看不到怎么办- -。彬哥很惊奇的回答我:重定向到文件啊他觉得很简单的东西我竟然不知道。)4。显示存入文件中数据cat filenamecat:是一个实用程序三大功能:1一次显示整个文件。cat filename2.从键盘创建一个文件。cat filename只能创建新文件,不能编辑已有文件.ctrl+c完成文件的创建。3.将几个文件合并为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论