Shell格式化输入
2021年4月9日
read 命令
默认接收键盘的输入,回车符代表输入结束。
命令格式如下:
[root@localhost ~]# read [选项]
选项:
-p:打印信息,一般放在 -s -t -n 的后面,否则可能会出错
-t:限定时,单位秒
-s:不回显
-n:输入字符个数
实例
- 模拟系统登陆
#!/bin/bash
clear
#echo -n -e "Login: "
#read acc
read -p "Login: " acc
#echo -n -e "psssword: "
#read -s -t10 -n8 pw
read -s -t10 -n8 -p "Password: " pw
echo
echo -e "account: $acc\tpassword: $pw "
- 利用管道读取文件内容
#!/bin/bash
count=1 #赋值语句,不加空格
cat test.txt | while read line #cat的输出作为read的输入,read读到的值放入line
do
echo "Line $count:$line"
count=$[ $count + 1 ] #注意中括号中的空格
done
echo "Finish"
exit 0
每次调用 read
命令都会读取文件中的 "一行" 文本(文本文件的每一行结尾都有一个回车符)。当文件没有可读的行时(即没有回车符时),read
命令将以非零状态退出。
通过什么样的方法将文件中的数据传给 read
呢?使用 cat
命令并通过管道将结果直接传送给包含 read
命令的 while
命令。