Quit)
Break
*)
Do something
Esac
done
shell脚本学习
1,设置运行环境
在脚本的顶部写入:#!/bin/bash2,SHELL中变量与赋值str=hello
linux中变量不需定义,要用时直接赋值使用。如:str,注意等号两边不能有空格str=`ls -l /tmp/sh` 如果要把某个命令的执行结果赋给某个变量时,=号右边要用``括起来
echo "$str"
查看变量的值,此处结果为:hello3,从键盘输入字符或数值赋给指定的变量read name 如:从键盘输入lishi,则name的值为:lishi4,"",'',``双引号,单引号,倒引号之间区别
echo "my name is $name"
显示字符串,但含有转义字符引用其变量的值。例中结果:my name is tom
echo 'my name is $name'
把单引号中的内容原样显示出来,结果:my name is $name
echo `ls -l`
把倒引号中字符当作命令来执行,并把执行结果显示出来。5,加,减,乖,除,求模运算。注意要用倒引号括起来
expr `5 + 4`
expr `5 - 4`
expr `5 * 4`
expr `5 / 4`
expr `5 % 4`
如果是在脚本里面进行运算时,倒引号要包括=号右边全部内容。如:sum=0sum=`expr $sum + 1`6,对文本操作的命令
less 能上下翻
more 能一屏一屏的翻
head 看文本的头10行 参数-n 5 表示只显示头5行
tail 看文本的尾10行,加 -f参数,能实时看日志文件的变化。如看tomcat日志文件变化。tail -f /usr/tomcat/logs/canitsl.out
参数-n 5 表示只显示头5行7,$?表示上一个命令是否正确执行,0表示正常,1表示错误
ls /tmp/hello,如果/tmp/下没有hello这个文件或目录。则$?为1,反之为08,./test lishi wangwu
$0程序名,$1第一个参数的名称,例中$0为test
$*参数组成的字符串,例中$*为lishiwangwu
$#传递给程序参数的总数目,例中$#为29,linux中变量分为全局环境变量和用户配置变量
全局环境变量针对系统中所有用户而设置的工作环境目录,在/etc/profile中
用户配置变量针对某一用户的。在用户登录的目录下,.bash_profile中10,重定向重定向就是改变原来输入输出的方向,默认都是屏幕输出设备,键盘是输入设备。“>”是输出重定向符。“<”是输入重定向符。“>”只存放正确的信息,“2>”存放错误的信息,每次存入前都会把之前文件内容清空再放入如:ls /usr > /tmp/aaa 把/usr目录下的所有文件和文件夹名称信息放到期/tmp/aaa文件中。
如:ls /test 2> /tmp/aaa 如果没有/test文件夹,这时就会发生错误,那么2>就会把错误信息存入aaa文件中。
“>”能创建新文件,如:>hello.java
“>”能清空一个文件 如hello.java文件中有内容,我再>hello.java这时,hello.java内容清空“>>”双大于号在一起就变成了追加功能,在之前的文件内容后面追加内容。如:cat /tmp/sh >> /tmp/aaa 把/tmp/sh目录中的所有文件和目录信息追加到aaa文件中。aaa文件之前的内容不会被清除。cat > hello.java时,能在屏幕上输入很多的内容,按ctrl+D时就会退出。再cat hello.java时










