linux命令之 交互式输入read

read是一个重要的命令,用于从键盘或标准输入中读取输入。
一般只有按回车键的时候才标志输入完毕,但有些情况下没法按回车键,read提供了一种不需要按回车键的方法。
1.-p “提示语句” 变量名
[wang@localhost 桌面]$ vim testcmd.sh
#!/bin/bash
read -p "Enter your name :" name1 name2   //name1前面要 空格,可以赋值给多个变量
echo $name1
echo $name2

[wang@localhost 桌面]$ chmod +x testcmd.sh 
[wang@localhost 桌面]$ ./testcmd.sh 
Enter your name :william sam
william
sam
[wang@localhost 桌面]$ ./testcmd.sh 
Enter your name :william sam linux    // 多余的输入会赋值给最后一个变量
william
sam linux

2.-n 输入个数
当输入 字符数达到预定数目,则自动退出,不用按回车。
[wang@localhost 桌面]$  read -n 4 -p "Enter your name :" name;echo $name
Enter your name :wangwang    //一个wang是输入的,另一个是echo $name。

3.-s 不回显
用于输入密码,对于密码的保护。
[wang@localhost 桌面]$  read -n 4 -s -p "Enter your name :" name;echo $name
Enter your name :wang    //这个是echo $name

4.-t 等待输入的秒数
[wang@localhost 桌面]$  read -n 4 -t 2 -p "Enter your name :" name;echo $name
Enter your name :            //等2秒后 自动跳出了

或者写个脚本:
[wang@localhost 桌面]$ vim testcmd.sh
#!/bin/bash
if read -t 2 -p "Enter your name :" name
then
        echo $name
else
        echo "Timeout!"
fi
[wang@localhost 桌面]$ ./testcmd.sh 
Enter your name :Timeout!

5.-d 自定义定界符
输入自定义的定界符,结束输入。
[wang@localhost 桌面]$  read -d ":" -p "Enter your name :" name;echo $name
Enter your name :name:name

6.从标准输入中读取
[wang@localhost 桌面]$ vim testcmd.sh
#!/bin/bash
count=1
cat test.c | while read line    //从test.c读取每一行并赋值给line变量
do
        echo "$count:$line"
         count=$[ count+1 ]
done

[wang@localhost 桌面]$  cat test.c
#include <stdio.h>

int main()
{
int a = 4;
(++a) += a;
printf("we are the best %d!\n",a);
return 0;
}

[wang@localhost 桌面]$ ./testcmd.sh 
1:#include <stdio.h>
2:
3:int main()
4:{
5:int a = 4;
6:(++a) += a;
7:printf("we are the best %d!n",a);
8:return 0;
9:}
注意:上面的cat test.c 也可以换成ls ,ps,grep,find等等命令


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值