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

目录
相关文章
|
6天前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
2月前
|
SQL 索引
在 SQL Server 中使用 STRING_AGG 函数
【8月更文挑战第5天】
613 2
在 SQL Server 中使用 STRING_AGG 函数
|
5天前
|
索引
Sass String(字符串) 函数
Sass String(字符串) 函数用于处理字符串并获取相关信息。
14 1
|
2月前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
17 1
|
2月前
|
Shell Linux 网络安全
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
|
2月前
|
存储 Serverless 数据处理
Python - len(string)函数
通过上述介绍和示例,我们可以清楚地看到,在Python中,`len()`函数是处理字符串以及其他可迭代对象长度的重要工具。它简单、易用,但在实际应用中却非常强大,无论是在基础编程还是在复杂的数据处理中,`len()`函数都扮演着不可或缺的角色。
53 10
|
2月前
|
存储 NoSQL 索引
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
|
2月前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
|
3月前
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
37 3
|
2月前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
32 0