Shell之系统函数和自定义函数
一、系统函数
1.basename基本语法
basename [string / pathname][suffix] (功能描述:basename命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。
2、案例
(1)截取该/home/laoxiao/14for循环语句-4.sh路径的文件名称
[root@mylinux2 shell]# basename /home/shell/14for循环语句-4.sh
14for循环语句-4.sh
选项:suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。
[root@mylinux2 shell]# basename /home/shell/14for循环语句-4.sh .sh
14for循环语句-4
[root@mylinux2 shell]# basename /home/shell/14for循环语句-4.sh 语句-4.sh
14for循环
3、dirname基本语法
dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分))
[root@mylinux2 shell]# dirname /home/shell/14for循环语句-4.sh
/home/shell
[root@mylinux2 shell]# dirname /home/zhilong/msb/abc/mulu/66.txt
/home/zhilong/msb/abc/mulu
4、综合运用
将/opt/test/目录下的所有文件改为以.txt结尾
dir="/opt/test/"for f in `opt/test/*.txt`;do#f就是opt/test目录下的文件filename=`basename $f.txt .txt`dist_name=filename".sh"mv $f $dir$dist_name
done
二、 自定义函数
1.基本语法
[ function ] funname[()]
{Action;
[return int;]
}
funname
注意:
(1)必须在调用函数地方之前,先声明函数,shell脚本是逐行运行。不会像其它语言一样先编译。
(2)函数返回值,只能通过$?系统变量获得,可以显示加:return返回,如果不加,将以最后一条命令运行结果,作为返回值。return后跟数值n(0-255)
(3)可以采用标准输出:echo来作为函数的返回值
2、通过自定义函数计算输入的2个参数的和
1 #!/bin/bash2 3 #自定义的一个函数4 function sum(){5 6 s=$[$1+$2]7 return $s8 9 }10 11 sum 100 20012 13 echo $?
执行结果为:44
[root@mylinux2 shell]# bash 17自定义函数1.sh
44
分析:执行结果为什么是44呢?明显不对,什么原因呢?
因为return后跟数值n(0-255)
1 #!/bin/bash2 3 #自定义的一个函数4 function sum(){5 6 s=$[$1+$2]7 return $s8 9 }10 11 sum 10 20012 13 echo $?
执行结果为:210
[root@mylinux2 shell]# bash 17自定义函数1.sh
210
3、解决当2个数的和大于255的方法
可以采用标准输出:echo来作为函数的返回值
1 #!/bin/bash2 3 #自定义的一个函数4 function sum(){5 6 let s=$1+$27 8 echo $s9 }10 11 result=`sum 100 200`12 13 echo $result
[root@mylinux2 shell]# bash 18自定义函数.sh
300
三、计算1到n的阶乘
1 #!/bin/bash2 3 if [ $# -ne 1 ];then4 echo "参数错误,程序错误"5 exit 36 fi7 8 #任何一个大于1的数字,它的阶乘=n*(n-1)的阶乘9 10 function jiecheng(){11 n=$112 if [ $n -le 1 ];then13 echo 1 #当成n=1的时候函数的返回值14 return 0 #返回的是执行状态15 elif [ $n -gt 1 ];then16 let pre_n=n-117 temp=`jiecheng $pre_n` ##计算n-1的阶乘18 let result=n*temp19 echo $result20 return 021 fi22 23 }24 25 jiecheng $1
Shell之系统函数和自定义函数相关推荐
- Python之系统函数、自定义函数、模块、递归合集
一.函数(function)引入 1.函数(计算机函数)是程序中一段相对独立的代码,这段代码能够实现某一项具有独立.完整的功能.指可以直接被另一段程序代码引用的程序代码. 2.函数分为系统函数和自定义 ...
- 在python中使用关键字define定义函数_python自定义函数def的应用详解
这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法:def 函数名(参数1,参数2,参数-): ...
- excel中DATE(year,month,day)函数——oracle自定义函数
@oracle自定义函数写excel中DATE函数 oracle自定义函数写excel中DATE函数 EXCEL中DATE函数逻辑为DATE(year,month,day) 含义:DATE(年,月,日 ...
- 内置函数、自定义函数
编程语言的函数都可以分为两类:内置函数和自定义函数. 内置函数分为 数字相关的内置函数 # abs(x) 求绝对值print(abs(-10)) #10 """ divm ...
- Hive函数(内置函数(字符串函数,数学函数,日期函数,集合函数,条件函数,聚合函数,表生成函数)和自定义函数(自定义函数创建流程,临时函数,永久函数)))(四)
Hive函数(内置函数和自定义函数) 一.内置函数 1.字符串函数 (1)ascii (2)base64 (3)concat (4)concat_ws (5)format_number (6)subs ...
- c语言自定义函数格式化,自定义函数的形式
c语言程序设计题:请用自定义函数的形式编程实现,代码: #include 请用自定义函数的形式编程实现 CSS布局HTML小编今天和大家分享 s = m. + n. + k.,m.n.k 从键盘输入( ...
- pandas编写自定义函数、使用apply函数应用自定义函数基于Series数据生成新的dataframe
pandas编写自定义函数.使用apply函数应用自定义函数基于Series数据生成新的dataframe 目录 pandas编写自定义函数.使用apply函
- 自定义_Excel中的自定义函数(自定义函数的基础内容)
各位朋友,你们好. 最近和网友沟通交流Excel问题,好些问题都没法直接实现,因此用了很多自定义函数,也给头条里的朋友写过几个自定义函数(比如颜色计算的函数.提取不重复内容的函数.汉字转拼音的函数-- ...
- C语言-函数(自定义函数)
C语言中函数的分类: 1 库函数 2 自定义函数 自定义函数 如果库函数能干所有的事情,那还要程序员做什么? 所以更重要的是自定义函数 函数的组成: ret_type fun_name (par ...
- 一文弄懂python中的函数(自定义函数,匿名函数,高阶函数与解析式)
什么是函数,如何在 Python 程序中定义函数呢? 说白了,函数就是为了实现某一功能的代码段,只要写好以后,就可以重复利用. python中的自定义函数 Python 的函数具有非常灵活多样的参数形 ...
最新文章
- [C]计算某一天是该年中的第几天
- 数据库维护优化及后期改进约定.实践篇
- ReactNative-----环境搭建二(android)
- c语言 结构数组读取,有关文件读写到结构体数组问题;
- leetcode 283. 移动零(Java版)
- mysql 时间函数大全_mysql常用的日期函数汇总
- 单图说TDSQL;OceanBase 2.2 事务引擎核心功能;穿云箭2.0版发布;RMAN DUPLICATE配置19C DG;外键上有无索引的影响;MySQL8.0 索引新功能;GaussDB C
- aov建立Java模拟,JAVA
- 应用算法的实际情况——简单就是美
- 如何面试前端工程师?
- linux装完系统需要输入密码,在安装Linux系统的过程中,一定要设置root用户的密码 (5.0分)...
- 微信视频提取及接收文件路径
- Apple Pencil 一代和二代有什么区别
- 程序员鄙视链, 所有工程师都鄙视php工程师, 为什么
- 豆角炒肉 肉末豆腐
- csv文件用什么打开_什么是CSV文件,如何打开它?
- Matlab-LSB信息隐藏实验
- ReleaseDC、DeleteDC(买二送一DeleteObject)简单解析
- MySQL之CentOS安装MySQL
- Fortran文件操作-open
热门文章
- javascript高级程序设计pdf_一个老牌程序员推荐的JavaScript的书籍,看了真的不后悔!...
- 编程小白学python知乎周刊_在知乎上学 Python - 入门篇
- c++ 浮点数转换成字符串_Python如何处理数据?如何把数据转换成我们想要的?三种处理方法...
- 成功解决ImportError: Something is wrong with the numpy installation. While importing we detected an olde
- ML之LiRLassoR:利用boston房价数据集(PCA处理)采用线性回归和Lasso套索回归算法实现房价预测模型评估
- DL之DCGAN:基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成
- 成功解决TypeError: Encoders require their input to be uniformly strings or numbers. Got [‘float‘, ‘int‘,
- ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现
- 7.1 TensorFlow笔记(基础篇):加载数据之预加载数据与填充数据
- uc/os-II(source)各种文件含义集锦