脚本的常用执行方式
方式1(输入脚本的绝对路径或相对路径)
1)首先要赋予helloworld.sh脚本的 +x 权限
2)执行脚本
方式2(sh+脚本):
说明:不用赋予脚本+x权限,直接执行即可
Shell的变量的介绍
1) Linux Shell中的变量分为,系统变量和用户自定义变量。
2)系统变量: SHOME、$PWD、SSHELL、SUSER等等 比如: echo $HOME等等..
3)显示当前shell中所有变量: set
shell变量的定义:
基本语法
1)定义变量:变量=值
2)撤销变量: unset 变量
3)声明静态变量: readonly变量, 注意:不能unset
定义变量的规则:
1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
2)等号两侧不能有空格
3)变量名称一般习惯为大写TOMCAT HOME
将命令的返回值赋给变量(重点):
1) A='ls -lai' 反引号,运行里面的命令,并把结果返回给变量A
2) A=$(ls -la) 等价于反引号
设置环境变量:
基本语法
1) export 变量名=变量值 (功能描述: 将shell变量输出为环境变量)
2) source配置文件 (功能描述:让修改后的配置信息立即生效)
3) echo $变量名 (功能描述:查询环境变量的值)
注意:在输出JAVA _HOME环境变量前,需要让其生效 source /etc/profile
位置参数变量介绍:
当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量,比如: myshell.sh 100 200.这个就是一个执行shell 的命令行,可以在myshell脚本中获取到参数信息
基本语法
$n (功能描述: n为数字, s0代表命令本身,S1-S9 代表第一到第九个参数, 十以上的参数需要用大括号包含,如${10})
$* (功能描述: 这个变量代表命令行中所有的参数,s*把所有的参数看成一个整体)
$@ (功能描述:这个变量也代表命令行中所有的参数,不过S @把每个参数区分对待)
$# (功能描述:这个变量代表命令行中所有参数的个数)
预定义变量:
基本介绍:
就是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用
基本语法
$$ (功能描述:当前进程的进程号(PID) )
$! (功能描述:后台运行的最后一个进程的进程号(PID) )
$? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上-一个命令 正确执行;如果这个变量的值为非0 (具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)
运算符基本介绍:
学习如何在shell中进行各种运算操作。
基本语法
1)“$((运算式)"或“$[运算式]”
2) expr m + n 注意:expr运算符间要有空格
3) expr m - n
4)expr \*,/,%乘,除,取余
注意事项: (1) [条件判断式],中括号和条件判断式之间必须有空格(2)推荐使用第二种方式
for语句:
case语句:
函数:
系统函数
1、基本语法
basename [ string / pathname ] [suffix] (功能叙述:basename命令会删掉所有的前缀包括最后一个('/')字符,然后讲字符串显示出来
选项: suffix 为后缀,如果suffix被制定类,basename会将pathname或string中的suffix去掉
dirname 文件绝对路径
(功能描述:从给定的包含绝对路径的文件名中去除文件名,返回剩下的路径)
自定义函数
1、基本语法
[ function ] funname[()]
{
Action;
[return int;]
}
funname
注意:
(1)必须在调用函数地方之前,先声明函数,shell脚本是逐行运行。不会像其他语音那样先编译。
(2)函数返回值,只能通过$?系统变量获得,可以显式加:return 返回,如果不加,讲最后一条命令运行结果,作为返回值,return 后跟数值n(0-255)