编写一个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
我是学生,只是为了学习这个,我觉得很难,你能给我一些建议吗?我认为这应该有很多问题。非常感谢你。
答案 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