0
点赞
收藏
分享

微信扫一扫

Shell中的函数

_刘彦辉 2023-07-03 阅读 57
linuxshell

文章目录

Shell中的函数

1 系统函数

1.1 basename 根据绝对路径或者相对路径获取文件名

[root@localhost jiaoben]# ll
总用量 48
-rwxr-xr-x. 1 root root 181 71 22:54 case_demo.sh
-rw-r--r--. 1 root root  76 71 23:02 for_demo1.sh
-rw-r--r--. 1 root root  45 71 23:12 for_demo2.sh
-rwxr--r--. 1 root root 185 71 23:25 for_demo3.sh
-rw-r--r--. 1 root root  27 627 23:38 hello.sh
-rwxr-xr-x. 1 root root  62 71 22:24 if_demo1.sh
-rwxr-xr-x. 1 root root 203 71 22:38 if_demo2.sh
-rwxr-xr-x. 1 root root  52 628 22:05 parameter.sh
-rw-r--r--. 1 root root 450 629 00:03 para.sh
-rwxr--r--. 1 root root  88 72 00:07 read_demo.sh
-rw-r--r--. 1 root root 323 629 23:58 sum.sh
-rw-r--r--. 1 root root  84 71 23:33 while_demo.sh
[root@localhost jiaoben]# basename /home/jiaoben/case_demo.sh
case_demo.sh
[root@localhost jiaoben]# basename /home/jiaoben/case_demo.sh .sh
case_demo
[root@localhost jiaoben]# cd ..
[root@localhost home]# basename jiaoben/hello.sh
hello.sh
[root@localhost home]# basename jiaoben/hello.sh .sh
hello

1.2 dirname 获取文件所在路径

[root@localhost home]# dirname /home/jiaoben/case_demo.sh
/home/jiaoben
[root@localhost home]# dirname jiaoben/hello.sh
jiaoben

1.3 date 日期函数

[root@localhost home]# date
2023年 07月 02日 星期日 00:21:13 CST
[root@localhost home]# date +%F
2023-07-02
[root@localhost home]# date +%s
1688228484

2 自定义函数

语法:

1)必须在调用函数的地方之前,先声明函数,shell脚本是逐行运行。

2)函数返回值,只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将以最后一条命令运行结果作为返回值。return后跟数值n(0-255)

2.1 求两数和的函数Demo

sum_fun.sh

#!/bin/bash
function add(){
        s=$[$1 + $2]
        echo "和等于:"$s
}
read -p "请输入第一个整数:" num1
read -p "请输入第二个整数:" num2
add $num1 $num2

执行脚本:

[root@localhost jiaoben]# sh sum_fun.sh
请输入第一个整数:8
请输入第二个整数:6
和等于:14

2.2 求两数和带return返回的Demo

sum_fun.sh

#!/bin/bash
function add(){
        s=$[$1 + $2]
        return $s
}
read -p "请输入第一个整数:" num1
read -p "请输入第二个整数:" num2
add $num1 $num2
echo "和等于:"$?

执行脚本:

[root@localhost jiaoben]# sh sum_fun.sh
请输入第一个整数:120
请输入第二个整数:110
和等于:230
[root@localhost jiaoben]# sh sum_fun.sh
请输入第一个整数:150
请输入第二个整数:200
和等于:94

**注意:**从以上结果可以看出来,当大于255时,输出的计算结果不准确

2.3 求两数和并把结果给变量 ,对变量进行操作Demo

sum_fun.sh

#!/bin/bash
function add(){
        s=$[$1 + $2]
        echo $s
}
read -p "请输入第一个整数:" num1
read -p "请输入第二个整数:" num2
sum=$(add $num1 $num2)
echo "和等于:"$sum
echo "和的平方:"$[$sum * $sum]

执行脚本:

[root@localhost jiaoben]# vim sum_fun.sh
[root@localhost jiaoben]# sh sum_fun.sh
请输入第一个整数:100
请输入第二个整数:200
和等于:300
和的平方:90000
举报

相关推荐

0 条评论