Java充电社
专辑
博文
联系我
本人继续续收门徒,亲手指导
Shell专题
-> 函数
1、Shell概述
2、Shell脚本入门
3、变量
4、Shell字符串拼接(连接、合并)
5、运算符:$(())或$[]
6、条件判断
7、流程控制(重点)(if/case/for/while)
8、read读取控制台输入
9、函数
10、$(cmd)和`cmd`:命令替换
11、正则表达式入门
12、cut命令:文本处理
13、awk命令:文本处理
14、shell综合案例
上一篇:read读取控制台输入
下一篇:$(cmd)和`cmd`:命令替换
<div style="display:none"></div> ## 9.1、系统函数 ### 9.1.1、basename:打印目录或者文件的基本名称 #### 1)语法 ```shell basename 名称 [后缀] basename 选项... NAME... ``` #### 2)选项 | 选项 | 作用 | | ---- | ------------------------------------ | | -a | 支持多个参数并将每个参数视为一个名称 | | -s | 指定需要剔除的后缀 | #### 3)案例 ```shell [root@test001 shells]# basename /root/shells/while.sh while.sh [root@test001 shells]# basename /root/shells/while.sh .sh while [root@test001 shells]# basename -s .sh -a case.sh while.sh case while ``` ### 9.1.2、dirname:获取文件的目录名称 #### 1)语法 ```shell dirname 文件名称 ``` #### 2)案例 ```shell [root@test001 shells]# dirname /usr/bin/ /usr [root@test001 shells]# dirname /usr/bin/1.sh /usr/bin [root@test001 shells]# dirname /usr/bin/1.sh /a/b/2.sh /usr/bin /a/b [root@test001 shells]# dirname 1.sh . ``` ## 9.2、自定义函数 ### 9.2.1、语法 > 注意下面[]包裹的部分是可选的 ```shell [ function ] funname[()] { Action; [return int;] } ``` ### 9.2.2、经验技巧 - 必须在调用函数地方之前, 先声明函数, shell 脚本是逐行运行。 不会像其它语言一样先编译 - 函数返回值, 只能通过\$?系统变量获得, 可以显示加: return 返回, 如果不加, 将以最后一条命令运行结果, 作为返回值。 return 后跟数值 n(0-255) ### 9.2.3、案例 需求:创建一个sum函数,用来计算用户输入2个数的和。 创建fun.sh,内容如下 ```shell #!/bin/bash function sum(){ r=$[$1+$2] echo "$1+$2=$r" } read -p "请输入第1个参数:" a read -p "请输入第2个参数:" b sum $a $b ``` 执行 ```shell [root@test001 shells]# chmod +x fun.sh [root@test001 shells]# ./fun.sh 请输入第1个参数:2 请输入第2个参数:3 2+3=5 ``` <a style="display:none" target="_blank" href="https://mp.weixin.qq.com/s/_S1DD2JADnXvpexxaBwLLg" style="color:red; font-size:20px; font-weight:bold">继续收门徒,亲手带,月薪 4W 以下的可以来找我</a> ## 最新资料 1. <a href="https://mp.weixin.qq.com/s?__biz=MzkzOTI3Nzc0Mg==&mid=2247484964&idx=2&sn=c81bce2f26015ee0f9632ddc6c67df03&scene=21#wechat_redirect" target="_blank">尚硅谷 Java 学科全套教程(总 207.77GB)</a> 2. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484192&idx=1&sn=505f2faaa4cc911f553850667749bcbb&scene=21#wechat_redirect" target="_blank">2021 最新版 Java 微服务学习线路图 + 视频</a> 3. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484573&idx=1&sn=7f3d83892186c16c57bc0b99f03f1ffd&scene=21#wechat_redirect" target="_blank">阿里技术大佬整理的《Spring 学习笔记.pdf》</a> 4. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247484544&idx=2&sn=c1dfe907cfaa5b9ae8e66fc247ccbe84&scene=21#wechat_redirect" target="_blank">阿里大佬的《MySQL 学习笔记高清.pdf》</a> 5. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247485167&idx=1&sn=48d75c8e93e748235a3547f34921dfb7&scene=21#wechat_redirect" target="_blank">2021 版 java 高并发常见面试题汇总.pdf</a> 6. <a href="https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247485664&idx=1&sn=435f9f515a8f881642820d7790ad20ce&scene=21#wechat_redirect" target="_blank">Idea 快捷键大全.pdf</a> ![](https://itsoku.oss-cn-hangzhou.aliyuncs.com/itsoku/blog/article/1/2883e86e-3eff-404a-8943-0066e5e2b454.png)
#custom-toc-container