Shell 脚本(四) ”read 读取控制台输入” 与 “函数”
个人博客网:https://wushaopei.github.io/ (你想要这里多有)
八、read 读取控制台输入
1、基本语法
read(选项)(参数)
选项:
-p: 指定读取值时的提示符;
-t :指定读取值是等待的时间(秒)
参数
变量:指定读取值的变量名
2、案例实操
(1)提示7秒内,读取控制台输入的名称
[root@rich datas]# touch read.sh
[root@rich datas]# vim read.sh
#!/bin/bash
read -t 7 -p "input your name " NAME
echo $NAME
执行脚本:
[root@rich datas]# bash read.sh
input your name
[root@rich datas]# dfads
bash: dfads: 未找到命令...
[root@rich datas]# bash read.sh
input your name wenmin
wenmin
注: 当input your name 提示的7秒过了之后,退出控制台,不能进行输入NAME; 7秒内将参数输入,便可以被接受到,并使用echo进行打印。
九、函数
1、系统函数
1.1、basename 基本语法
basename [string/pathname] [suffix]
(功能描述: basename 命令会删除掉所有的前缀,包括最后一个(‘ / ’)字符,然后将字符串显示出来)
选项:
suffix 为后缀,如果 suffix 被指定了,basename 会将pathname 或 string 中的 suffix 去掉
1.2、案例实操
(1)截取该 路径的文件名称
[root@rich datas]# basename /home/wenmin/datas/batch.sh
batch.sh
[root@rich datas]# basename /home/wenmin/datas/batch.sh .sh
batch
1.3、 dirname基本语法
dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分))
1.4、案例实操
(1)获取 batch.sh 文件的路径
[root@rich datas]# dirname /home/wenmin/datas/batch.sh
/home/wenmin/datas
2、自定义函数
2.1 基本语法
[ function ] funname[()]
{
Action;
[return int;]
}
funname
2.2 经验技巧
(1)必须在调用函数地方之前,先声明函数,shell脚本是逐行运行。不会像其它语言一样先编译。
(2)函数返回值,只能通过$?系统变量获得,可以显示加: return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return 后跟数值 n(0-255)
2.3 案例实操
(1)计算两个输入参数的和
[root@rich datas]# touch sum.sh
[root@rich datas]# vim sum.sh
#!/bin/bash
function sum()
{
s=0;
s=$[$1+$2]
echo $s
}
read -p "input your parameter1:" p1
read -p "input your parameter2:" p2
sum $p1 $p2
执行 sum.sh 脚本
[root@rich datas]# bash sum.sh
input your parameter1:1
input your parameter2:2
3
Shell 脚本(四) ”read 读取控制台输入” 与 “函数”的更多相关文章
- shell专题(八):read读取控制台输入
1.基本语法 read(选项)(参数) 选项: -p:指定读取值时的提示符: -t:指定读取值时等待的时间(秒). 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 ...
- (六)read读取控制台输入
1.基本语法 read(选项)(参数) 选项: -p:指定读取值时的提示符: -t:指定读取值时等待的时间(秒). 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 ...
- shell脚本调用C语言之字符串切分函数——strtok
今天上午在写一个需求,要求的比较急,要求当天完成,我大致分析了一下,可以采用从shell脚本中插入一连串的日期,通过调用proc生成的可执行文件,将日期传入后台数据库,在数据库中进行计算.需要切分日期 ...
- shell 脚本之获取命令输出字符串以及函数参数传递
在ubuntu 14.04之后,所有的U盘挂载也分用户之分,最近很多操作也和U盘有关,所以就研究了一上午shell脚本函数以及字符串操作的方法. 字符串操作: 获取他的命令输出比较简单,打个简单的比方 ...
- Shell脚本学习笔记之(自动填充函数模板)
其实,vii 就是写的一个脚本,跟 vi 没半毛钱关系,只不过借用一下这个名字而已.那这个脚本长什么样呢?look: 下面来详细的解析上面的代码,来看第1行: #!/bin/bash 这是Shell脚 ...
- linux shell脚本:在脚本中实现读取键盘输入,根据输入判断下一步的分支
echo please input “runbip” to run bip. variableName="null" while [ $variableName != " ...
- shell脚本四-三剑客
Shell编程——三剑客 简介 Grep:默认不支持扩展表达式,加-E或者egrep Awk:支持所有zhengze Sed默认不支持扩展表达式,加-r 2.sed语法格式 Sed 选项 命令 文件( ...
- 8.read读取控制台输入
read(选项)(参数)选项:-p:指定读取值时的提示符-t:指定读取时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了参数:变量:指定读取时的变量名
- Java 读取控制台输入
方式1:InputStreamReader+BufferedReader package my_package; import java.io.BufferedReader; import java. ...
随机推荐
- ES[7.6.x]学习笔记(八)数据的增删改
在前面几节的内容中,我们学习索引.字段映射.分析器等,这些都是使用ES的基础,就像在数据库中创建表一样,基础工作做好以后,我们就要真正的使用它了,这一节我们要看看怎么向索引里写入数据.修改数据.删除数 ...
- 【HBase】HBase基本介绍和基础架构
目录 基本介绍 概述 特点 HBase和Hadoop的关系 RDBMS与HBase的对比 特征 基础架构 基本介绍 概述 HBase是bigtable的开源java版本,是建立在HDFS之上,提供高可 ...
- QTreeWidget更新后保存节点的展开状态
class Xx : public QWidget { Q_OBJECT struct ItemState{ ItemState(); int _id; bool _isExpend; }; publ ...
- u-boot 移植(二)创建新平台的板级支持
u-boot 移植(二)创建新平台的板级支持 soc:s3c2440 board:jz2440 uboot:u-boot-2016.11 toolchain:gcc-linaro-7.4.1-2019 ...
- java web 开发之 office(excel、doc等)文件转pdf
一.开发工具:office 16.jacob-1.18-M2.jboss 1.6 二.开发配置: 1.解压缩---> 2.配置jacob: A C:\Windows\System32 jacob ...
- es6中 var 和 let的区别
区别1:var没有块级作用域,只有 函数级作用域 和 全局作用域:let有块级作用域 function fn() { { var a = 10; } console.log(a) //输出10 } f ...
- pthon-安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示“This application failed to start because no Qt platform plugin could be initialized.Reinstalling the application the application may fix this program”
最近学习python,安装网上教程一步一步的安装,网上很多帖子都写的非常详细,不由深深感慨多谢各位不辞辛苦的记录,指导着来自新入门的同学. 但是实际安装中,最理想莫过于一次性安装成功,但自己安装就出现 ...
- react-grid-layout实现拖拽,网格布局
借鉴地址:https://www.jianshu.com/p/b48858eee3a7 安装 react-grid-layout npm install react-grid-layout impor ...
- 【雕爷学编程】MicroPython动手做(01)——春节后入手了K210开发板
Python的开放.简洁.黏合正符合了现发展阶段对人工智能.大数据分析.可视化.各种平台程序协作产生了快速的促进作用.自Python3的发布到现在已有五六年的时间,从刚发布的反对声音到慢慢被接受与喜欢 ...
- python机器学习(三)分类算法-朴素贝叶斯
一.概率基础 概率定义:概率定义为一件事情发生的可能性,例如,随机抛硬币,正面朝上的概率. 联合概率:包含多个条件,且所有条件同时成立的概率,记作: