OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

读取 - 从标准输入读取值

这个 内置命令用于读取单行标准输入。 此命令可用于读取键盘输入,或者在使用重定向时读取文件中的一行数据。 该命令具有以下语法:

读 [-选项[变量...]

协调 选项 是下面列出的一个或多个可用选项,并且 变量 是用于保存输入值的一个或多个变量的名称。 如果没有提供变量名,shell 变量 回复 包含数据行。

基本上, 将标准输入中的字段分配给指定的变量。 如果我们修改我们的整数评估脚本以使用 ,它可能看起来像这样:


#!/斌/庆典


# read-integer:计算一个整数的值。


echo -n "请输入一个整数 -> " 读取 int


如果 [[ "$int" =~ ^-?[0-9]+$ ]]; 然后如果 [ $int -eq 0 ]; 然后

echo "$int 为零。"

其他

如果 [ $int -lt 0 ]; 然后

echo "$int 是负数。"

其他

echo "$int 是正数。"

fi

if [ $((int % 2)) -eq 0 ]; 然后 echo "$int 是偶数。"

其他

echo "$int 是奇怪的。"

fi

其他

echo "输入值不是整数。" >&2 退出1

fi

#!/斌/庆典


# read-integer:计算一个整数的值。


echo -n "请输入一个整数 -> " 读取 int


如果 [[ "$int" =~ ^-?[0-9]+$ ]]; 然后如果 [ $int -eq 0 ]; 然后

echo "$int 为零。"

其他

如果 [ $int -lt 0 ]; 然后

echo "$int 是负数。"

其他

echo "$int 是正数。"

fi

if [ $((int % 2)) -eq 0 ]; 然后 echo "$int 是偶数。"

其他

echo "$int 是奇怪的。"

fi

其他

echo "输入值不是整数。" >&2 退出1

fi


我们使用 回音 -n 选项(抑制输出的尾随换行符)以显示提示,然后使用 为变量输入一个值 INT. 运行此脚本的结果如下:


[我@linuxbox ~]$ 读整数

请输入一个整数 -> 5

5为阳性。

5 是奇数。

[我@linuxbox ~]$ 读整数

请输入一个整数 -> 5

5为阳性。

5 是奇数。


read 可以将输入分配给多个变量,如下脚本所示:


#!/斌/庆典

# read-multiple: 从键盘读取多个值 echo -n "输入一个或多个值 > "

读取 var1 var2 var3 var4 var5


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"

#!/斌/庆典

# read-multiple: 从键盘读取多个值 echo -n "输入一个或多个值 > "

读取 var1 var2 var3 var4 var5


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"


在此脚本中,我们最多分配和显示五个值。 注意如何 给定不同数量的值时的行为:



[我@linuxbox ~]$ 多读

输入一个或多个值 > abcde

var1 = ‘a’ var2 = ‘b’ var3 = ‘c’ var4 = ‘d’ var5 = ‘e’

[我@linuxbox ~]$ 多读 输入一个或多个值 > a var1 = 'a'

var2 = '' var3 = '' var4 = '' var5 = ''

[我@linuxbox ~]$ 多读

输入一个或多个值 > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'

[我@linuxbox ~]$ 多读

输入一个或多个值 > abcde

var1 = ‘a’ var2 = ‘b’ var3 = ‘c’ var4 = ‘d’ var5 = ‘e’

[我@linuxbox ~]$ 多读 输入一个或多个值 > a var1 = 'a'

var2 = '' var3 = '' var4 = '' var5 = ''

[我@linuxbox ~]$ 多读

输入一个或多个值 > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'


If 收到少于预期的数字,额外的变量是空的,而过多的输入导致最终变量包含所有额外的输入。

如果在后面没有列出变量 命令,一个shell变量, 回复, 将分配所有输入:



#!/斌/庆典

# read-single: 将多个值读入默认变量 echo -n "输入一个或多个值 > "


echo "REPLY = '$REPLY'"

#!/斌/庆典

# read-single: 将多个值读入默认变量 echo -n "输入一个或多个值 > "


echo "REPLY = '$REPLY'"


运行此脚本的结果如下:



[我@linuxbox ~]$ 单读

输入一个或多个值 > A B C D

回复 = 'abcd'

[我@linuxbox ~]$ 单读

输入一个或多个值 > A B C D

回复 = 'abcd'


 

OnWorks 的顶级操作系统云计算: