写在前面:案例、常用、归类、解释说明。(By Jim)
使用多条命令
shell脚本的关键是可以输入多条命令,甚至可以将一条命令的结果传递给另一条命令。date;who(两个命令shell脚本的写法)创建shell脚本1.将shell命令放置到一个文本文件中2.指明所使用的shell,比如#!/bin/bash3.可以用#注释,但是一般注释不会被读取,第一行除外案例#!/bin/bash#This script displays the date and who's logged ondatewho4.保存为test15.将shell脚本文件所在的目录添加到PATH环境变量中(a.修改~/.bash_profilePATH=$PATH:$HOME/bin:/home/jiqing9006/shellscriptexport PATHb.执行source ~/.bash_profile)6.在命令行提示符中使用文件的绝对路径或相对路径来引用该shell脚本显示消息echo Let's see if this'll work(输出字符串,如果有单引号最好将整个字符串包在“”当中,否则单引号可能不会被输出。)echo -n "The time and date are:"date(-n让字符串与执行结果显示在一行中)使用变量变量允许在shell脚本中暂存信息,以便与脚本中其他命令一起使用。#!/bin/bash#display user information from the system.echo "User info for userid:$USER"echo UID: $UIDecho HOME: $HOMEecho PATH: $PATH(脚本中有一些变量的使用)如果想显示$符,可以加\,如下所示echo "The cost of the item is \$15"用户变量#!/bin/bash# testing variablesdays=10guest="Jiqing"echo "$guest checked in $days days ago"days=5guest="Jessica"echo "$guest checked in $days days ago"(定义用户自己的变量days,guest。这一点跟php有点相近)#!/bin/bash# assigning a variable value to another variable value1=10value2=$value1echo The result value is $value2(用变量给变量赋值)反引号``反引号允许将shell命令的输出赋值给变量。必须将整个命令行命令用反引号包围起来。testing=`date`(注意不是单引号,是~下面的那么符号)#using the backtick charactertesting=`date`echo "The date and time are:" $testing#!/bin/bash #using the backtick charactertoday=`date +%y%m%d`ls /usr/bin -al > log.$today(将ls /usr/bin -al 查询出来的结果写到log.$today文件中,执行完之后会发现新增一个log文件,里面都是查询出来的内容)重定向输入输出有时候想通过命令保存输出,而不是只在显示器显示输出。输出重定向date >test6(将date指令查询的结果保存到文件test6中)date >>test6(将信息追加到test6文件中)输入重定向(与输出相反的动作)wc <test6(将文本文件的内容重定向到wc命令下,供wc统计使用)管道有时候需要将一个命令的输出发送到另一个命令的输入。rpm -qa(列出所有被安装的rpm package )|将一个命令的输出发送到另一个命令的输入。rpm -qa >rpm.listsort rpm.list(等价于rpm -qa|sort)亦可以将重定向技术与管道结合使用rpm -qa |sort >rpmlist数学计算a.expr命令expr 1 + 2(注意要用空格,吓死我了,以为不能用来着)expr 5 \* 2(使用乘法需要加反斜杠)#!/bin/bash#An example of using the expr commandvar1=10var2=20var3=`expr $var2 / $var1`echo "The value of var3 is:"$var3(定义两个变量,用expr计算结果,保存到var3中,输出结果)b.使用括号$[]echo $[1+2](输出3)#!/bin/bashvar1=100var2=50var3=45var4=$[$var1*($var2-$var3)]echo The final result is $var4(括号让数学计算更加简便了,结果为500)c.浮点解决方案bash计算器实际上是一种编程语言,该语言允许在命令行中输入浮点表达式,然后解释表达式并计算它们,最后返回结果。输入bc进入指令模式输入quit退出指令模式在脚本中使用bc#!/bin/bashvar1=`echo " scale=4;3.44/5"|bc`echo The answer is $var1(将指令的结果保存给变量var1,指令中用了管道技术,输出指令给bc,bc执行之后返回结果)来看更多的例子#!/bin/bashvar1=100var2=45var3=`echo " scale=4;$var1/$var2"|bc`echo The answer for this is $var3(结果为2.2222)#!/bin/bashvar1=20var2=3.14159var3=`echo " scale=4;$var1*$var1"|bc`var4=`echo " scale=4;$var3*$var2"|bc`echo The answer is $var4(计算圆的面积)还可以用EOF来计算,更加的方便,清晰#!/bin/bashvar1=10.46var2=43.67var3=33.2var4=71var5=`bc<<EOFscale = 4al = ($var1*$var2)b1 = ($var3*$var4)a1+b1EOF`echo The answer is $var5退出脚本$?保存最后一条命令执行结束的退出状态。一条命令成功完成的退出状态是0。如果命令执行错误,那么退出状态就会是一个正整数。0 完成1 未知错误2 误用shell126 命令无法执行127 没有找到命令..exit命令允许在脚本结束时,指定一个退出状态。