06函数与read控制台输入

一、函数介绍

shell 编程和其它编程语言一样,有系统函数,也可以自定义函数。系统函数中,我们这里就介绍两个。

1、系统函数

basename

1)基本语法

basename [string / pathname] [suffix] (功能描述:basename 命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。

basename 可以理解为取路径里的文件名称

选项:
suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 或 string 中的 suffix 去掉。

2)案例实操

截取该/home/atguigu/banzhang.txt 路径的文件名称

[niujifei@njf ~]$ basename /home/abc/banzhang.txt
banzhang.txt
[niujifei@njf ~]$ basename /home/abc/banzhang.txt .txt
banzhang
dirname

1)基本语法

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

dirname 可以理解为取文件路径的绝对路径名称,返回完整路径最后 / 的前面的部分,常用于返回路径部分

2)案例实操

获取 banzhang.txt 文件的路径。

[niujifei@njf ~]$ dirname /home/abc/banzhang.txt
/home/abc

2、自定义函数

1)基本语法

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

调用直接写函数名:funname [值]

2)应用实例:计算输入两个参数的和(read), getSum

#!/bin/bash
function sum()
{
	S=0
	S=$[$1+$2]
	echo "$S"
}
read -p "Please input the number1: " n1;
read -p "Please input the number2: " n2;
sum $n1 $n2;

3)经验技巧

必须在调用函数地方之前,先声明函数,shell 脚本是逐行运行。不会像其它语言一 样先编译。

函数返回值,只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将 以最后一条命令运行结果,作为返回值。return 后跟数值 n(0-255)

二、read 读取控制台输入

1、基本语法

read(选项)(参数)

选项:
  -p:指定读取值时的提示符;
  -t:指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了。

参数
  变量:指定读取值的变量名

2、应用实例

案例1:读取控制台输入一个 num 值

案例2:读取控制台输入一个 num 值,在 10 秒内输入

[niujifei@njf ~]$ cat read.sh
#!/bin/bash

#案例1:读取控制台输入一个 num 值
read -p "请输入一个数num1=" NUM1
echo "您输入的值是num1=$NUM1"


#案例2:读取控制台输入一个 num 值,在10秒内输入
read -t 10 -p "请在10秒内输入一个数num2=" NUM2
echo "您输入的值数num2=$NUM2"
[niujifei@njf ~]$ ./read.sh
请输入一个数num1=1
您输入的值是num1=1
请在10秒内输入一个数num2=2
您输入的值数num2=2
[niujifei@njf ~]$ ./read.sh
请输入一个数num1=10
您输入的值是num1=10
请在10秒内输入一个数num2=您输入的值数num2=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值