3

编写一个 bash 脚本,该脚本将从用户那里读取 10 个整数并将输出附加到文件“XYZ”中。不允许在脚本中多次使用“read”语句。

#! /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

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

4

3 回答 3

5

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

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

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


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

于 2013-03-31T17:09:36.637 回答
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文件中,每一个都在一个新行中。

于 2013-03-31T17:12:39.200 回答
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
于 2013-04-01T17:12:54.497 回答