Linux 有人能告诉我错误在哪里吗

Linux 有人能告诉我错误在哪里吗,linux,bash,Linux,Bash,我需要获得用户输入的一个数字,然后在linux终端中逐行写入一个名称,这相当于用户输入的次数。例如,如果我选择了一个数字2,程序将逐行写入名称2次。我写了一些代码,但我不知道哪里出错了。我认为这是错误所在 echo "Please enter a number " read $number for value in {$number} do echo "Name" done 要读取输入并将其保存到名为number的变量中,请执行以下操作: read number 要获取number的值,请

我需要获得用户输入的一个数字,然后在linux终端中逐行写入一个名称,这相当于用户输入的次数。例如,如果我选择了一个数字2,程序将逐行写入名称2次。我写了一些代码,但我不知道哪里出错了。我认为这是错误所在

echo "Please enter a number "
read $number

for value in {$number}
do
echo "Name"
done

要读取输入并将其保存到名为
number
的变量中,请执行以下操作:

read number
要获取number的值,请执行
$number
${number}
。在
{$number}
中删除
{
}或使用
{

移动
$
,只需执行以下操作:

echo "Please enter a number "
read number
if ! test "$number" -gt 0 2> /dev/null; then
    echo "You must enter an integer greater than 0" >&2
    exit 1
fi
yes Name | sed ${number}q
但不要提示输入数字,将其作为命令行参数,只需这样做即可

yes Name | sed "${1}q"
如果参数无效,让sed生成错误消息


循环的问题在于,
for value in$number
接受字符串
$number
,并将其分解为空格(实际上取决于IFS,但我们不要被细节所困扰)并对每个值进行迭代。也就是说,如果
$number
是字符串
13 dog 5
,则循环将使用
$value
对值
1
3
dog
5
进行4次迭代。如果
$number
7
,则循环恰好迭代一次。您可以执行
for((i=0;i<$number;i++);执行…
,但如果$number不是整数,则不会生成任何有用的错误消息。

非常感谢现在程序要求输入一个数字,我输入值,但它不会显示任何tekst名称,即使在解决变量问题时,
对于$n中的值
也不会从1迭代到n。谢谢太多的代码工作了,现在我得到了我没有做对的东西,我告诉我的代码读取数值,但永远不要打印那么多次。谢谢