shell中的系统函数
函数介绍
shell 编程和其它编程语言一样,有系统函数,也可以自定义函数。系统函数中,我们这里就介绍两个。
系统函数
basename 基本语法
功能:返回完整路径最后 / 的部分,常用于获取文件名
basename [pathname] [suffix]
basename [string] [suffix] (功能描述:basename 命令会删掉所有的前缀包括最后一个(‘/’)
字符,然后将字符串显示出来。
选项:
suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 或 string 中的 suffix 去掉。
应用实例
案例 1:请返回 /root/shell/bbb.txt 的 "bbb.txt" 部分
看下图,直接在终端命令行写
当然啦,你也可以写到shell脚本中去,如下图:
#!/bin/bash
#将命令的返回值赋给变量
MYFILENAME1=`basename /root/shell/bbb.txt`
#将命令的返回值赋给变量
MYFILENAME2=$(basename /root/shell/bbb.txt .txt)
echo "-----带后缀的文件名-----"
echo "文件名是$MYFILENAME1"
echo "-----不带后缀的文件名-----"
echo "文件名是$MYFILENAME2"
dirname 基本语法
功能:返回完整路径最后 / 的前面的部分,常用于返回路径部分
dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分))
案例 2:请返回 /home/aaa/test.txt 的 /home/aaa
#!/bin/bash
#将命令的返回值赋给变量
MYFILENAME1=`basename /root/shell/bbb.txt`
#将命令的返回值赋给变量
MYFILENAME2=$(basename /root/shell/bbb.txt .txt)
echo "-----带后缀的文件名-----"
echo "文件名是$MYFILENAME1"
echo "-----不带后缀的文件名-----"
echo "文件名是$MYFILENAME2"
MYDIR=`dirname /root/shell/bbb.txt`
echo "文件目录是$MYDIR"