【shell】处理用户输入

shell在面对用户输入的时候一般使用read进行处理,read主要的参数如下:


read  -p    可以在read后面接上一串字符串,使用双引号处理,这样可以避免使用echo处理的时候还要多写一行

read  -t     设定超时时间

read  -n1  设定用户输入多少字符,当用户输入到最大字符数时,自动跳转;当前设定是输入一个字符就跳转

read  -s    不进行回显的输入方式,一般用于密码输入

举个栗子:


#!/bin/bash

#输入名字,10S不输入就超时

reade  -t 10  -p  "123454:"name                             

echo "$name"

#输入密码,使用不回显的输入方式,最多输入10个字符

read  -t  10  -s  -n10  -p "password:"password

echo "$password"


在运行脚本的时候也可以接受输入:


./admin.sh   a  b

其中a,b就是命令行输入,脚本获得这个输入后将这个输入放入对应的变量中,在shell中有默认的变量,如$1  $2等,对应参数位置来获取值

$0则是获取脚本的,可以通过该参数来串联执行脚本,但是最好使用basename进行调整,不然获取到的脚本都是绝对路径

使用$*    $@可以读取所有的数据,但是两个还是有差异的,前者会将所有参数当中一个单词保存,后者会当中一个字符串中不同的单词保存

这样就出现了认为是一个参数和多个参数【参数之间一般使用空格分隔】


read还可以读取文件,一般和cat连接使用:

cat test.txt | while read line

read一次读取文件中的一行文本,通过循环读取完成,当读完后返回一个非0的状态码结束循环


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值