shell简单的说就是一个命令解释器,用于用户和linux内核的沟通。shell中所执行的命令相当于fork出的子进程一样。建立脚本。#!/bin/bash 符号#!用来告诉系统它后面的参数是用来执行该文件的程序,bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本Xxxx //# //shell脚本注释符号二::linux下变量类型只有两种数字型 和字符串型 ,也可以一次声明多个同类型的变量declarevar1var2var3仅创建变量的程序能使用的变量是时局部变量 exportvarname2保留字export使得变量可由环境存取。即这个变量可以和系统中的其他程序共享。????这里不会 ,引用变量时前面要加"$"将数值赋给变量,可以不声明变量直接赋值如letvar=1000*注意:等号两端不能有空格let后面不加&号???待 比如i++ : delcarei=1leti=”$i+1"将字符串赋给变量必须先声明变量,且赋值在同一条语句,赋的值必须用双引号引起declarevar="100-100-100"echo$varHOME="/home" //注意赋值不要有空格HOME_LIST=$(ls/home)//把命令的执行结果赋值给变量 ehco$HOME //$符号是获得变量HOME的值系统变量: $0这个程序的执行名字$n 这个程序的第n个参数值,n=1...9 $* 这个程序的所有参数$#这个程序的参数个数$$这个程序的PID $!执行上一个背景指令的PID$?上一个指令的返回值4环境变量由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。三::算术运算符:+-* / %逻辑运算符:!&& ||比较运算符 算术运算符:letsum=“$a+$b"注意:等号两边没空格 加号两边有空格。且有关键字let 不然sum是字符算100+200的形式。 逻辑运算符: 比较运算符:-eq:等于-ne:不等于-gt:大于-ge :大于等于-lt:小于-le:小于等于leta=1000letb=400 文件比较运算符-efilename 如果filename存在,则为真 [-e/var/log/syslog] -dfilename 如果filename为目录,则为真 [-d/tmp/mydir] -ffilename 如果filename为常规文件,则为真[-f/usr/bin/grep] -Lfilename 如果filename为符号链接,则为真 [-L/usr/bin/grep] -rfilename 如果filename可读,则为真 [-r/var/log/syslog] -wfilename 如果filename可写,则为真 [-w/var/] -xfilename 如果filename可执行,则为真 [-L/usr/bin/grep filename1-ntfilename2如果filename1比filename2新,则为真[/tmp/install/etc/services-nt/etc/services] filename1-otfilename2如果filename1比filename2旧,则为真[/boot/bzImage-otarch/i386/boot/bzImage] 字符串比较运算符(请注意引号的使用,这是防止空格扰乱代码的好方法) -zstring 如果string长度为零,则为真 [-z"$myvar"] -nstring 如果string长度非零,则为真 [-n"$myvar"] string1=string2如果string1与string2相同,则为真["$myvar"="onetwothree"] string1!=string2如果string1与string2不同,则为真["$myvar"!="onetwothree"]if [ $a -gt $b ]注意空格 【 】也需要空出来貌似除了= if["22"-lt
shell脚本语法 来自淘豆网m.daumloan.com转载请标明出处.