函数
定义格式:
(1)
function_name ( )
{
command1
……
commandn
}
(2)
function function_name ( )
{
command1
……
commandn
}
注意:所有函数需要在使用前被定义,一般将函数定义放在脚本开始地方
自定义函数
#! /bin/sh
function getSum() {
SUM=$[$a+$b]
echo "getSum sum = $SUM"
}
read -p "input a:" a
read -p "input b:" b
getSum $a $b
# 省略function
getSum1() {
SUM=$[$a+$b]
echo "getSum1 sum = $SUM"
}
read -p "input a:" a
read -p "input b:" b
getSum1 $a $b
# 省略()
function getSum2 {
SUM=$[$a+$b]
echo "getSum2 sum = $SUM"
}
read -p "input a:" a
read -p "input b:" b
getSum2 $a $b
![在这里插入图片描述](https://img-blog.csdnimg.cn/253f0b838eea442e89e9add79f31acf6.png)
分文件定义函数
在func.sh
文件中定义函数
#! /bin/sh
function getSum() {
SUM=$[$a+$b]
echo "getSum sum = $SUM"
}
# 省略function
getSum1() {
SUM=$[$a+$b]
echo "getSum1 sum = $SUM"
}
# 省略()
function getSum2 {
SUM=$[$a+$b]
echo "getSum2 sum = $SUM"
}
在sum.sh
文件中引用函数
#! bin/sh
# 下面函数定义在func.sh文件这文件中
source func.sh
# 或者使用以下方法 (二选一)
. ./func.sh
read -p "sum input a:" a
read -p "sum input b:" b
getSum $a $b
read -p "sum1 input a:" a
read -p "sum1 input b:" b
getSum1 $a $b
read -p "sum2 input a:" a
read -p "sum2 input b:" b
getSum2 $a $b
系统函数
- basename
返回完整路径最后 / 的部分,常用于获取文件名
basename [pathname] [suffix]
suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 中的 suffix 去掉。
#! bin/sh
echo "path is `pwd`/sysfunc.sh"
FILEPATH=`basename /home/sh/sysfunc.sh `
FILENAME=$(basename /home/sh/sysfunc.sh .sh)
echo "filepath is $FILEPATH"
echo "filename is $FILENAME"
![在这里插入图片描述](https://img-blog.csdnimg.cn/7233047a61df4d5c8959b1a9bed51932.png)
- dirname
返回完整路径最后 / 的前面的部分,常用于返回路径部分
dirname 文件绝对路径
#! bin/sh
DIR=`dirname /etc/ssh/ssh_config.d`
echo "dir is $DIR"
![在这里插入图片描述](https://img-blog.csdnimg.cn/8b9024061b76484ca0ecd89f32520229.png)