shell - 函数
引入
一、read
-
作用
与用户进行IO设备的交互,读取控制台的输入
-
基本语法
read -t 时间 -p "字符串" 变量名
选项 说明 1 -t 在指定等待时间内输入内容,没写-t:表示一直等待 2 -p 指定读取值时的提示符 3 变量名 指定读取值的变量名 -
实力测试
#!/bin/bash read -t 20 -p "请在20秒内输入您的姓名:" name echo "您输入的姓名是:"$name
二、系统函数
-
basename
本质
是对文件的全类名做的一个剪切,剪切掉/前面的所有内容
基本语法
命令格式 功能 1 basename 文件的全路径名 输出文件名,不含路径 2 basename 文件的全路径名 后缀名 输出文件名,不含路径和后缀名 实例测试
#!/bin/bash echo filename: $(basename $0 .sh)
-
dirname
本质
是对文件的全类名(字符串)做的一个剪切,剪切掉最后一个/后面的所有内容
基本语法
命令格式 功能 1 basename 文件的绝对路径全路径名 输出绝对路径 2 basename 文件的相对路径全路径名 输出相对路径 测试
三、自定义函数
-
基本语法
function funcname () { // 程序; return 返回值; }
-
注意事项
① 必须在调用函数地方之前,先声明函数,
因为shell脚本是解释性语言,即逐条运行。不会像其它语言一样先编译后执行
② 函数的返回值,通过 $? 获得。
如果有return语句,则返回其数值,且return的值只能返回 0-255 内的整数值
如果没有return语句,则返回函数体最后一条语句的结果
-
测试
脚本内的函数
#!/bin/bash function add() { sum=$[$1 + $2] echo $sum } read -p "请输入第一个参数:" a read -p "请输入第二个参数:" b r=$(add $a $b) echo "结果的平方" $[$r * $r]
结果