原文:Linux Shell Scripting Tutorial V2.0
出处:http://blog.csdn.net/jubincn/article/details/8232513
read命令的语法:
- read -p "Prompt" variable1 variable2 variableN
-p "Prompt": 显示提示信息(和用户输入同一行显示)
variable1: 用户输入的第一个值将赋给variable1
variable2: 用户输入的第二个值将赋给variable2
处理输入
创建名为greet.sh的文件,输入:
- #!/bin/bash
- read -p "Enter your name : " name
- echo "Hi, $name. Let us be friends!"
保存并关闭文件,在命令行中输入:
- chmod +x greet.sh
- ./greet.sh
输出:
- Enter your name : Tomcat
- Hi, Tomcat. Let us be friends!
下面是一个示例文件,用于显示用户输入的域名信息:
- #!/bin/bash
- read -p "Enter the Internet domain name (e.g. nixcraft.com) : "
- domain_name
- whois $domain_name
时间设置
可以使用 -t 参数来限制用户的输入时间。例如,使用下面的命令设置用户在10秒内输入参数:
- #!/bin/bash
- read -t 10 -p "Enter the Internet domain name (e.g. nixcraft.com) : "
- domain_name
- whois $domain_name
输入密码
使用 -s 参数可以不显示用户的输入。示例如下:
- #!/bin/bash
- read -s -p "Enter Password : " my_password
- echo
- echo "Your password - $my_password"
读文件
最后,还可以使用read命令读取Linux系统上的文件。
每次调用read命令都会读取文件中的"一行"文本。当文件没有可读的行时,read命令将以非零状态退出。
读取文件的关键是如何将文本中的数据传送给read命令。
最常用的方法是对文件使用cat命令并通过管道将结果直接传送给包含read命令的while命令
例子::
#!/bin/bash
count=1 #赋值语句,不加空格
cat test | while read line#cat 命令的输出作为read命令的输入,read读到的值放在line中
do
echo "Line $count:$line"
count=$[ $count + 1 ] #注意中括号中的空格。
done
echo "finish"
exit 0