系统函数
- basename基本语法
basename [string / pathname] [suffix] (功能描述:basename命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。
选项:
suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。 - 案例实操
(1)截取该/root/learn/learnshell/1.txt路径的文件名称
[root@hadoop100 learnshell]# s=`pwd`"/1.txt"
[root@hadoop100 learnshell]# echo $s
/root/learn/learnshell/1.txt
[root@hadoop100 learnshell]# basename $s
1.txt
[root@hadoop100 learnshell]# basename $s .txt
1
- dirname基本语法
dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)) - 案例实操
(1)获取1.txt文件的路径
[root@hadoop100 learnshell]# echo $s
/root/learn/learnshell/1.txt
[root@hadoop100 learnshell]# dirname $s
/root/learn/learnshell
自定义函数
1.基本语法
[ function ] funname[()]
{
Action;
[return int;]
}
funname
注意:[]表示可以省略的部分。
- 经验技巧
(1)必须在调用函数地方之前,先声明函数,shell脚本是逐行运行。不会像其它语言一样先编译。
(2)函数返回值,只能通过$ ?系统变量获得,可以显示加:return返回,如果不加,将以最后一条命令运行结果,作为返回值。return后跟数值n(0-255) - 案例实操
(1)计算两个输入参数的和
[root@hadoop100 learnshell]# vim testfunction2.sh
#!/bin/bash
function plus()
{
s=0
s=$[$1+$2]
echo $s
}
read -p "请输入数字1:" n1;
read -p "请输入数字2:" n2;
plus $n1 $n2;
[root@hadoop100 learnshell]# bash testfunction2.sh
请输入数字1:1
请输入数字2:2
3
引用自尚硅谷课件