使用bash脚本读取数字

时间:2013-03-31 16:45:59

标签: linux bash

编写一个bash脚本,它将从用户读取10个整数,并将输出附加到文件'XYZ'。您不得在脚本中多次使用“读取”语句。

#! /bin/bash

for i in {0,1,2,3,4,5,6,7,8,9}
do
    read "i"
    echo "0,1,2,3,4,5,6,7,8,9" >> XYZ
done

我是学生,只是为了学习这个,我觉得很难,你能给我一些建议吗?我认为这应该有很多问题。非常感谢你。

3 个答案:

答案 0 :(得分:5)

让我们看看你已经拥有的东西。您的for循环执行read命令的10次迭代,read在脚本中只出现一次。您还可以将输出(>>)附加到文件XYZ

但是,您不应该为循环计数器使用相同的变量并读取输入。序列可以缩短为{0..9}

您仍然缺少的是检查用户输入实际上是否为整数的条件。而且您可能应该输出您读取的值,而不是字符串"0,1,2,3,4,5,6,7,8,9"


更一般地说,您可能会发现以下指南有助于学习bash

答案 1 :(得分:2)

#!/bin/bash
echo 'Input 10 integers separated by commas:'
read line
nums=`echo -n "$line" | sed "s/,/ /g"`
for i in $nums; do
    echo "$i" >> XYZ
done

如果您输入9,8,7,6,5,4,3,2,1,0,这些数字将附加到XYZ文件中,每个都在新行中。

答案 2 :(得分:1)

将10个(或更少或更多)整数读入数组,输出不超过前10个:

read -p '10 integers please: ' -a number 
IFS=,
echo  "${number[*]:0:10}" >> XYZ

输入:

1 2 3 4 5 6 7 8 9 0

输出,逗号分隔:

1,2,3,4,5,6,7,8,9,0