shell中的自定义函数,返回值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/czh500/article/details/84802594

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种写法

扫描二维码关注公众号,回复: 4424228 查看本文章

1)A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量 A
2)A=$(ls -la)

3 函数返回值,只能通过$? 系统变量获得,直接通过=,获得是空值。其实,我们按照上面一条理解,知道函数是一个命令,在shell获得命令返回值,都需要通过$?获得

如果不知道$?是什么,那就回顾一下以前的知识,看我这篇文章也可以

预定义变量

基本介绍

就是 shell 设计者事先已经定义好的变量,可以直接在 shell 脚本中使用

基本语法

$$ (功能描述:当前进程的进程号(PID))
$! (功能描述:后台运行的最后一个进程的进程号(PID))
$? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了)

猜你喜欢

转载自blog.csdn.net/czh500/article/details/84802594