shell中的自定义函数
直接看截图和代码吧,一目了然!
#!/bin/bash
#如下语句会报错,因为在调用test1函数之前要先声明test1函数
#也就是说,函数的调用语句要放在函数的声明的后面(调用函数语句的位置要放在函数声明语句的位置的后面)
#test1 20 30
function test1()
{
echo $1和$2
return $(($1+$2))
}
test1 50 70
#将命令的结果赋给变量total
total=$(test1 10 66)
#echo "运行命令的结果是$total"
#函数返回值,只能通过$?系统变量获得,直接通过=,获得是空值,可以把函数理解成一个命令
#在shell中获得命令返回值,都需要通过$?获得
#echo $?
echo $total,$?
echo "运行命令的结果是$total"
:<<!
我这里是多行注释
将命令的执行结果赋给变量,有2种写法,如下
1)A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量 A
2)A=$(ls -la)
!
function test2() {
echo "江西省赣州市于都县"
}
#将命令的结果赋给变量,举例子,如下:
MESSAGE=$(test2)
echo "运行命令的结果是$MESSAGE"
function test3() {
dirname /root/shell/bbb.txt
}
#将命令的结果赋给变量,举例子,如下:
MESSAGE2=`test3`
echo "运行命令的结果是$MESSAGE2"
总结:
1 必须在调用函数地方之前,声明函数,shell脚本是逐行运行,不会像其它语言一样先预编译一次,必须在使用函数前先声明函数
2 total=$(fSum 3 2); 通过这种调用方法,我们清楚知道,在shell 中 单括号里面,可以是:命令语句。 因此,我们可以将shell中函数,看作是定义一个新的命令,它是命令,因此 各个输入参数直接用 空格分隔。 一次,命令里面获得参数方法可以通过:$0…$n得到。 $0代表函数本身
给大家回顾一下以前的知识,将命令的执行结果赋给变量,看我这篇文章也可以
如下图:
将命令的返回值赋给变量(重点)
2种写法
1)A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量 A 2)A=$(ls -la)
3 函数返回值,只能通过$? 系统变量获得,直接通过=,获得是空值。其实,我们按照上面一条理解,知道函数是一个命令,在shell获得命令返回值,都需要通过$?获得
如果不知道$?是什么,那就回顾一下以前的知识,看我这篇文章也可以
预定义变量
基本介绍
就是 shell 设计者事先已经定义好的变量,可以直接在 shell 脚本中使用
基本语法
$$ (功能描述:当前进程的进程号(PID))$! (功能描述:后台运行的最后一个进程的进程号(PID))$?