一条命令让你明白shell中read命令的常用参数

我们知道,在Shell中接收传入的参数有两种方式。一种是通过脚本进行参数传递,另外一种是通过read来接收传入的参数。通过脚本来传递参数的简单示例如下:

# 通过脚本来传递,这里$0指脚本名,$1为第一个参数,$2为第二个参数
[root@host ~]# ./script.sh 1 2
Total = 3
[root@host ~]# vim script.sh
#!/bin/bash
function add() {
  total=$(expr $1 + $2)
  echo -e "Total = $total"
}
add $1 $2

再来看通过read来接收传入的参数,先看read的基本格式:

read [-rs] [-a ARRAY] [-d delim] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [var1 var2 var3......]

[root@host ~]# ./script.sh
Enter Password:
The password your input is: Test@1234\
[root@host ~]# vim script.sh
#!/bin/bash
read -n10 -t30 -r -s -d $ -p "Enter Password:" password
echo -e "\nThe password your input is:$password"
  • -p 提示语句,后面接输入提示信息,这里为'Enter Password: '
  • -n 参数个数,有时候要限制密码长度,或者其他输入长度限制,比如[Y/N],只输入输入一位,-n1
  • -s 屏蔽回显,屏幕上不显示输入内容,一般用于密码输入
  • -t 等待时间,这里设置30秒,30秒内未输入或者输入不全,终止
  • -d 输入界限,这里是$,输入到$,自然终止输入
  • -r 屏蔽特殊字符\的转译功能,加了之后作为普通字符处理

从上面一个例子,基本上囊括了上面的大部分常用功能,特别是-p,-n,-t,-s等参数,可以很好的学习read这个命令

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Shell脚本用for循环遍历参数的方法技巧

    1.当一个脚本需要传入的参数较多时,可以使用for循环进行参数遍历 示例: #!/bin/bash number=65 #定义一个退出值 index=1 #定义一个计数器 if [ -z "$1" ];then #对用户输入的参数做判断,如果未输入参数则返回脚本的用法并退出,退出值65 echo "Usage:$0 + canshu" exit $number fi echo "listing args with \$*:" #在屏幕输入,在$*

  • Shell脚本判断用户的输入内容

    1.脚本功能:提示客户属于一串数字,并判断用户是否进行了输入,输入的是否为数字 #!/bin/bash read -p "enter a number: " number #提示用户输入数字 if [ -z $number ];then #判断用户是否输入,如果未输入则打印error echo "Error" exit else jieguo=`echo "$number*1" | bc ` #把用户的输入值和1相乘,交给bc做运算 if [ $

  • Shell中的while循环几种使用实例详解

    1.利用while循环计算1到100的和: 示例代码1: #!/bin/bash i=1 sum=0 while [ $i -le 100 ] do let sum=sum+$i let i++ done echo $sum 示例代码2:利用while循环计算1到100之间所有奇数之和 #!/bin/bash i=1 sum=0 while [ $i -le 100 ] do let sum=sum+$i let i+=2 done echo $sum 示例代码3:利用while循环计算1到10

  • Shell中字符串排序的几种方法

    [方法一]按ASCII正向排序 备注: 1) tr将子字符串中的空白转换为换行符,再用sort排序 2) sort无参的话,默认按ASCII正向排序 [方法二]按ASCII正向排序 备注: 1) -r参数:  按ASCII码反向排序 2) 在使用sort,uniq等组合命令时候 [方法三]按自然数顺序排序 备注: 1) -n参数:  按自然数的顺序来排序 2) 如果不加-n参数的话,默认是按1,2,3..9的顺序排列,即使101也是排在2之前 总结 以上就是这篇文章的全部内容了,希望本文的内容对

  • Shell脚本中使用getopts处理多命令行选项

    在Linux系统中,许多命令都提供了选项,使用不同的选项就会得到不通的执行结果 例如:ls命令,ls命令提供了多个选项:-l.-a.-A.-h.-i等等,每个选项具有不同的功能,我们自己写脚本时也可以定义选项,提示用户如何使用,本文介绍如何使用getopts命令来处理命令选项. 1.getopts命令的如何使用: 用getopts命令获取到脚本选项后,getopts会将获取到的选项所对应的参数(选项对应的参数,并不是选项本身,有的命令选项后面是需要跟一个参数的,例如tcpdump 的-w选项,后

  • Shell脚本中管道的几种使用实例讲解

    管道经常用于拼接命令,通过管道可以执行一些复杂的数据处理操作.以下为在shell中使用管道处理数据的的几个实例 示例1:生成一个8位的随机密码 tr -dc A-Za-z0-9_ </dev/urandom | head -c 8 | xargs 示例2:查看系统中所有的用户名称,并按字母排序 awk -F: '{print $1}' /etc/passwd | sort 示例3:列出当前用户使用最多的5个命令(print的列数根据实际情况而定) history | awk '{print $2

  • Linux Shell在目录下使用for循环结合if查找文件的巧用

    1.for循环对目录做遍历,if判断文件是否为要查找的文件. 示例1: #!/bin/bash if [ $# -lt 1 ];then echo "Usage:$0 + filepath" exit fi #判断用户是否输入了参数 match=$1 #将要查的文件赋值给变量match found=0 #定义一个初始变量作为发生条件,当文件找到时对此变量重新赋值 for file in /etc/* #对目录进行遍历 do if [ $file == $match ];then #判断

  • Shell脚本中awk指令的用法

    语法格式:awk [选项]  '指令'  操作文件 常用选项:-F  指定分隔符,分隔符用""引起来 -v:var=value在awk程序开始之前指定一个值valu给变量var,这些变量值用于awk程序的BEGIN快 -f:后面跟一个保存了awk程序的文件,代替在命令行指定awk程序 实例1:在命令行直接输入awk指令 awk '{print}' 1.txt #逐行读取文件1.txt内容并打印 awk '{print $0}' 1.txt #逐行读取文件内容,并打印该行,$0保存的是当

  • Shell脚本从文件中逐行读取内容的几种方法实例

    从文件逐行读取数据的方法有两种,一种是在while循环或until循环中使用read命令,通过文件描述符一行一行的读取文件内容:另一种是在for循环中使用cat <filename>来读取文件的内容. 1.使用for循环从文件中逐行读取内容:在默认情况现下此方法是逐个单词的读取文件内容,因为使用这种方法读取文件时,他使用环境变量IFS的值作为分隔符,由于IFS的默认值是"<space/空格>""<tab/制表符>""&l

  • Shell中整数计算的几种方式

    在Shell中可以使用下列方式来做整数的计算(+,-,*,/) 方式一: linux:~ # A=1 linux:~ # B=2 linux:~ # C=$(($A+$B)) linux:~ # echo $C 3 方式二: linux:~ # A=1 linux:~ # B=2 linux:~ # C=$[$A + $B] linux:~ # echo $C 3 方式三: linux:~ # A=1 linux:~ # B=2 linux:~ # C=`expr $A + $B` linux:

随机推荐