个人博客网:https://wushaopei.github.io/    (你想要这里多有)

八、read 读取控制台输入

1、基本语法

read(选项)(参数)

选项:

-p: 指定读取值时的提示符;

-t :指定读取值是等待的时间(秒)

参数

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

2、案例实操

(1)提示7秒内,读取控制台输入的名称

  1. [root@rich datas]# touch read.sh
  2. [root@rich datas]# vim read.sh
  3. #!/bin/bash
  4. read -t 7 -p "input your name " NAME
  5. echo $NAME

执行脚本:

  1. [root@rich datas]# bash read.sh
  2. input your name
  3. [root@rich datas]# dfads
  4. bash: dfads: 未找到命令...
  5. [root@rich datas]# bash read.sh
  6. input your name wenmin
  7. 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)截取该 路径的文件名称

  1. [root@rich datas]# basename /home/wenmin/datas/batch.sh
  2. batch.sh
  3. [root@rich datas]# basename /home/wenmin/datas/batch.sh .sh
  4. batch

1.3、 dirname基本语法

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

1.4、案例实操

(1)获取 batch.sh 文件的路径

  1. [root@rich datas]# dirname /home/wenmin/datas/batch.sh
  2. /home/wenmin/datas

2、自定义函数

2.1 基本语法

  1. [ function ] funname[()]
  2. {
  3. Action;
  4. [return int;]
  5. }
  6. funname

2.2 经验技巧

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

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

2.3 案例实操

(1)计算两个输入参数的和

  1. [root@rich datas]# touch sum.sh
  2. [root@rich datas]# vim sum.sh
  3. #!/bin/bash
  4. function sum()
  5. {
  6. s=0;
  7. s=$[$1+$2]
  8. echo $s
  9. }
  10. read -p "input your parameter1:" p1
  11. read -p "input your parameter2:" p2
  12. sum $p1 $p2

执行 sum.sh 脚本

  1. [root@rich datas]# bash sum.sh
  2. input your parameter1:1
  3. input your parameter2:2
  4. 3

Shell 脚本(四) ”read 读取控制台输入” 与 “函数”的更多相关文章

  1. shell专题(八):read读取控制台输入

    1.基本语法 read(选项)(参数) 选项: -p:指定读取值时的提示符: -t:指定读取值时等待的时间(秒). 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 ...

  2. (六)read读取控制台输入

    1.基本语法 read(选项)(参数) 选项: -p:指定读取值时的提示符: -t:指定读取值时等待的时间(秒). 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 ...

  3. shell脚本调用C语言之字符串切分函数——strtok

    今天上午在写一个需求,要求的比较急,要求当天完成,我大致分析了一下,可以采用从shell脚本中插入一连串的日期,通过调用proc生成的可执行文件,将日期传入后台数据库,在数据库中进行计算.需要切分日期 ...

  4. shell 脚本之获取命令输出字符串以及函数参数传递

    在ubuntu 14.04之后,所有的U盘挂载也分用户之分,最近很多操作也和U盘有关,所以就研究了一上午shell脚本函数以及字符串操作的方法. 字符串操作: 获取他的命令输出比较简单,打个简单的比方 ...

  5. Shell脚本学习笔记之(自动填充函数模板)

    其实,vii 就是写的一个脚本,跟 vi 没半毛钱关系,只不过借用一下这个名字而已.那这个脚本长什么样呢?look: 下面来详细的解析上面的代码,来看第1行: #!/bin/bash 这是Shell脚 ...

  6. linux shell脚本:在脚本中实现读取键盘输入,根据输入判断下一步的分支

    echo please input “runbip” to run bip. variableName="null" while [ $variableName != " ...

  7. shell脚本四-三剑客

    Shell编程——三剑客 简介 Grep:默认不支持扩展表达式,加-E或者egrep Awk:支持所有zhengze Sed默认不支持扩展表达式,加-r 2.sed语法格式 Sed 选项 命令 文件( ...

  8. 8.read读取控制台输入

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

  9. Java 读取控制台输入

    方式1:InputStreamReader+BufferedReader package my_package; import java.io.BufferedReader; import java. ...

随机推荐

  1. lammps 学习之:系统压力太大,导致原子丢失

    体系压力太大:146981.52bar,体系压强太大 会把原子挤跑 出现原子丢失的情况(lost atoms). 原子丢失: 解决方法:增大体系体积.增加z方向的距离.

  2. CSS躬行记(10)——CSS方法论

    方法论是一个哲学术语,会对一系列具体的方法进行分析研究.系统总结并最终提出较为一般性的原则.CSS方法论是一种面向CSS.由个人和组织设计.已被诸多项目检验且公认有效的最佳实践.这些方法论都会涉及结构 ...

  3. 【Kafka】JavaAPI操作

    目录 先创建Maven工程导入jar包 Producer API Consumer API Stream API 先创建Maven工程导入jar包 帮助文档地址:http://kafka.apache ...

  4. VA01信贷使用

    1业务场景 业务在正式机中发现,当使用VA01输入客户编号回车后会报错 2解决方法 1. SE24进入CL_IM_UKM_SD_FSCM_INTEGR1 2. 双击方法IF_EX_BADI_SD_CM ...

  5. 数学建模(二)优劣解距离法Topsis模型部分

    步骤: (一)统一指标类型:指标正向化(转化为极大型)(论文) 越大越好极大型指标,效益型指标 越小越好极小型指标,成本型指标 max-x,max=max{xi} 落在某个区间[a,b]是最好的,区间 ...

  6. ThinkPad BIOS

    ThinkPad-BIOS    如有问题指出 ~谢谢

  7. css中文字两端对齐兼容IE

    text-align: justify; text-justify:inter-ideograph;

  8. 【雕爷学编程】Arduino动手做(47)---七段LED数码管模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...

  9. java十大排序

    0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序. 非比较类排序:不通过比较来决 ...

  10. Unity3D的UGUI布局锚点自动绑定关系

    [MenuItem("CONTEXT/RectTransform/Auto")] public static void AutoRectAnior() { Debug.Log(&q ...