Shell函数、系统函数、basename [string / pathname] [suffix] 可以理解为取路径里的文件名称 、dirname 文件绝对路径、自定义函数

简介: dirname截取最后一个斜杠之前的路径,不包括文件名,而basename截取最后一个斜杠之后的文件名,不包括路径、 suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname中的 suffix 去掉。(1)必须在调用函数地方之前,先声明函数,shell 脚本是逐行运行。不会像其它语言一样先编译。 (2)函数返回值,只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。return 后跟数值 n(0-255).......

@[toc]
如果想看更详细的Shell总结请到我之前写的博客http://t.csdn.cn/cQArA

1.函数

1.1系统函数

1.1.1basename

1.1.1.1基本语法

basename [string / pathname] [suffix] (功能描述:basename 命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。
basename 可以理解为取路径里的文件名称
选项:
suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 或 string 中的 suffix 去掉。

1.1.2dirname

dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分))
dirname 可以理解为取文件路径的绝对路径名称

1.1.3案例

1.1.3.1date+%s时间戳练习

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.1.3.2basename的练习

在这里插入图片描述

将文件名剪切下来
在这里插入图片描述
parameter文件的代码
在这里插入图片描述

显示的文件名包括路径,我们不需要输出路径,因此加上basename来解决

在这里插入图片描述

在这里插入图片描述

1.1.3.3dirname的练习

dirname截取最后一个斜杠之前的路径,不包括文件名
而basename截取最后一个斜杠之后的文件名,不包括路径

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果只有pwd的话,在其他文件夹里执行代码则不会打印脚本的目录,需要加上dirname,如下
在这里插入图片描述

在这里插入图片描述

加上dirname后输出的脚本路径是保持不变的

1.2自定义函数

1.2.1基本语法

[ function ] funname[()] 
{ 
    Action; 
    [return int;] 
}

1.2.2经验技巧

(1)必须在调用函数地方之前,先声明函数,shell 脚本是逐行运行。不会像其它语言一样先编译。
(2)函数返回值,只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。return 后跟数值 n(0-255)

1.2.3案例

1.2.3.1没有使用return的版本

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
可以输出和

1.2.3.2用return返回的话

在这里插入图片描述
在这里插入图片描述
可以看出,return后面必须是跟数字,修改如下:
在这里插入图片描述
在这里插入图片描述

这样就可以正常输出结果了,但是return的时候只能返回0-255,超过的数就不能显示正确的答案,如下
在这里插入图片描述
156+245!=145的,所以可以说明return只能返回0-255的数,那我们应该如何解决呢,看下面的代码
在这里插入图片描述
这样写就可以将函数add里面echo的值赋给ans,然后再输出
在这里插入图片描述

结果也是对的,说明这样写是正确的

如果想看更详细的Shell总结请到我之前写的博客http://t.csdn.cn/cQArA

目录
相关文章
|
存储 安全 Shell
⭐⭐⭐【Shell 命令集合 磁盘管理 】Linux 显示当前工作目录的路径 pwd命令使用教程
⭐⭐⭐【Shell 命令集合 磁盘管理 】Linux 显示当前工作目录的路径 pwd命令使用教程
679 0
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】Linux 追踪数据包在网络中的路径 traceroute命令 使用指南
【Shell 命令集合 网络通讯 】Linux 追踪数据包在网络中的路径 traceroute命令 使用指南
599 0
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
1190 32
|
Shell Linux C语言
Shell 函数
10月更文挑战第4天
102 7
|
Shell 开发者
Shell 函数深入解析与实践
了解 Shell 函数的基础,包括定义、参数传递及返回值。函数定义有多种语法,如 `function func() {...}` 或 `func() {...}`。参数通过 `$1`, `$2` 等访问,`$@` 代表所有参数。`return` 用于返回退出状态码(0-255),非数值数据需用 `echo`。正确获取函数返回值应立即检查 `$?`,例如:`result=$?`。实践中不断探索和学习!
294 1
|
存储 NoSQL 索引
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
|
Shell Linux 程序员
在Linux中, 什么是shell函数?如何使用它们?
在Linux中, 什么是shell函数?如何使用它们?
|
存储 算法 安全
shell 脚本之 函数与数组
shell 脚本之 函数与数组
|
运维 Shell Python
第五章 Shell函数与数组
第五章 Shell函数与数组
|
Shell 应用服务中间件 nginx
shell学习(七) 【shell 函数】
shell学习(七) 【shell 函数】
138 1