一,执行shell程序文件有三种方法
(1)#sh file
(2)# . file
(3)#source file
shell常用的系统变量
$ # :保存程序命令行参数的数目
$ ? :保存前一个命令的返回码
$ 0 :保存程序名
$ * :以("$1 $2...")的形式保存所有输入的命令行参数
$ @ :以("$1""$2"...)的形式保存所有输入的命令行参数
二,shell函数介绍
Shell中引用其他文件:
Shell使用source引用其他文件,这类似于C语言中的include。
source file_path_name
这样可以把函数定义在一个文件中,在另外一个文件中调用这个文件中的函数。
Shell中函数的定义:
格式1、
function fun()
{
command
}
格式2
function fun
{
command
}
Shell中函数的调用:
funname 参数1 参数2 ... 参数n
没有参数时调用: funname
Shell中参数传递:
在函数中使用:$#获取参数的个数;
在函数中使用:$@和$*获取参数内容;
在函数中使用:$1, $2, ... $(n)获取第一个参数,第二个参数等
在函数中获取函数参数的方法,和调用shell脚本的参数是一样的。
Shell中函数的返回值:
在shell中,函数的返回值,即return返回值,存在在$?内置变量,
可以使用$?,获取函数返回值。
全局变量:
在shell中定义函数后,函数会与返回值,但是有时候返回值是一个列表,可以用全局变量返回:
export global_value_name=""
function test_fun()
{
global_value_name='abc edf aaa'
}
echo global_value_name
三:if表达式介绍
条件表达式
文件表达式
if [ -f file ] 如果文件存在
if [ -d ... ] 如果目录存在
if [ -s file ] 如果文件存在且非空
if [ -r file ] 如果文件存在且可读
if [ -w file ] 如果文件存在且可写
if [ -x file ] 如果文件存在且可执行
整数变量表达式
if [ int1 -eq int2 ] 如果int1等于int2
if [ int1 -ne int2 ] 如果不等于
if [ int1 -ge int2 ] 如果>=
if [ int1 -gt int2 ] 如果>
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<
字符串变量表达式
If [ $a = $b ] 如果string1等于string2
字符串允许使用赋值号做等号
if [ $string1 != $string2 ] 如果string1不等于string2
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空
if [ $sting ] 如果string 非空,返回0 (和-n类似)