在Shell脚本中,读取键盘输入的内容并将其赋值给Shell变量的命令是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Shell脚本中,读取键盘输入的内容并将其赋值给Shell变量的命令是啥?相关的知识,希望对你有一定的参考价值。
是linux
在sell脚本中,读取键盘输入的内容并将其赋值给shell变量的命令为:
read -p "input a val:" val echo $valread - 从标准输入读取数值。这个 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用 重定向的时候,读取文件中的一行数据。
它的语法形式一般是:
read [-options] [variable...]这里的 options 是下面列出的可用选项中的一个或多个,且 variable 是用来存储输入数值的一个或多个变量名。 如果没有提供变量名,shell 变量 REPLY 会包含数据行。
基本上,read 会把来自标准输入的字段赋值给具体的变量。
shell的概念:
壳层(英语:Shell)在计算机科学中,是指“提供用户使用界面”的软件,通常指的是命令行界面的解析器。一般来说,这个词是指操作系统中,提供访问内核所提供之服务的程序。不过这个词也拿来指应用软件,或是任何在特定组件外围的软件,例如浏览器或电子邮件软件是html排版引擎的shell。Shell这个词是来自于操作系统(内核)与用户界面的外层界面。通常将壳层分为两类:命令行与图形界面。命令行壳层提供一个命令行界面(CLI);而图形壳层提供一个图形用户界面(GUI)。
参考技术A read var;就可以了。
会读取一行到var变量。 参考技术B read -p "input a val:" val
echo $val本回答被提问者和网友采纳 参考技术C read -p "input a val:" a #获取键盘输入的 a 变量数字
read -p "input b val:" b #获取键盘输入的 b 变量数字
r=$[a+b] #计算a+b的结果 赋值给r 不能有空格
echo "result = $r" #输出显示结果 r 参考技术D 楼上正解
第二章 从键盘或文件中获取标准输入:read命令
第二章 从键盘或文件中获取标准输入:read命令read命令
从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读多个变量的值,变量和输入的值都需要使用空格隔开。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY
语法
read (选项) (参数)
选项:
? -p 指定读取值时候的提示符
? -t 指定读取值时候等待的时间(秒)
参数:
? 变量 :指定读取值得变量名
查看变量值:
echo $变量名
printf $变量名
注意:使用echo或printf 输出变量值时,必须在变量名前加$,否则输出变量名。
实例
常用的read命令方式
-
read name 从标准输入读取内容 并赋值给变量name 如: [[email protected] ~]# read name abc [[email protected] ~]# echo $abc 123 也可以写成脚本 [[email protected] ~]# vi shili.sh #!/bin/bash read name echo "你输入的名字是:"$name 运行: [[email protected] ~]# /bin/bash shili.sh 小王 你输入的名字是:小王
-
read first second 从标准输入读取内容,当遇到第一个空格(这里只能输入空格,输入回车程序就退出了) 将输入的第一个单词赋值给first;将剩下的赋值给second 如: [[email protected] ~]# vi shili.sh #!/bin/bash read name age echo "你输入的名字是:"$name "你输入的年龄是:"$age 运行: [[email protected] ~]# /bin/bash shili.sh 小王 22 IT 你输入的名字是:小王 你输入的年龄是:22 IT
-
read 从标准输入读取到的一行内容赋值给特定变量REPLY 如: [[email protected] ~]# vi shili2.sh #!/bin/bash read echo $REPLY [[email protected] ~]# /bin/bash shili2.sh 小王 22 it 小王 22 it
-
read -a arrayname 把单词清单读入arrayname的数组里 如: [[email protected] ~]# read -a info 小王 22 IT [[email protected] ~]# echo "你的名字是${info[0]},你的年龄是${info[1]},你的行业是${info[2]}" 你的名字是小王,你的年龄是22,你的行业是IT
?
-
read -p "text" 打印提示text,等待输入,并将输入内容赋值给REPLY中。 如: [[email protected] ~]# read -p "输入密码" 输入密码abc123 [[email protected] ~]# echo $REPLY abc123 补充:输入密码,不让密码显示出来 方法一: [[email protected] ~]# read -p "输入密码" -s pwd 输入密码 [[email protected] ~]# echo $pwd abc123 -s :代表不显示终端输入内容 方法二: [[email protected] ~]# vi mima.sh #!/bin/bash stty -echo # -echo 表示禁止将输出发送到终端 read -p "输入密码:" pwd stty echo # echo 则允许发送输出 echo echo $pwd echo 输入完毕 [[email protected] ~]# /bin/bash mima.sh 输入密码: abc123456 输入完毕
?
-
read -r line 允许输入包含反斜杠 [[email protected] ~]# read -r line abc\abc [[email protected] ~]# echo $line abc\abc
?
-
read -t 3 指定读取等待时间为3秒
?
-
read -n 2 var 从输入中读取两个字符并存入变量var,不需要按回车读取。 如: [[email protected] ~]# read -n 2 var 你好 # 当输完你好,够了两个字符,程序就自动结束了 [[email protected] ~]# echo $var 你好
?
-
read -d ":" var 用 定界符 冒号 结束输入行(也就是说冒号 就等于回车) 如: [[email protected] ~]# read -d ":" var abc: [[email protected] ~]# read -d ":" var2 123: [[email protected] ~]# echo $var abc [[email protected] ~]# echo $var2 123 当然也可以设置别的结束符 [[email protected] ~]# read -d "r" var3 456r [[email protected] ~]# echo $var3 456
?
以上是关于在Shell脚本中,读取键盘输入的内容并将其赋值给Shell变量的命令是啥?的主要内容,如果未能解决你的问题,请参考以下文章