我是shell编程的初学者。我有一个与shell脚本中的嵌套循环相关的问题。我想获得这样的输出:
输入:4
输出:
*
**
***
****
这是我目前使用的脚本:
echo "input : "
read a
for ((i=0; i<a; i++))
do
for ((j=0; j<i; j++))
do
echo "*"
done
echo "\n"
done
尝试执行程序时出错:Bad for looping
。
提前致谢。
答案 0 :(得分:1)
试试这个
echo "input : "
read a
for ((i=0; i<a; i++))
do
for ((j=0; j<=i; j++))
do
printf "*"
done
echo
done
要不打印换行符,您可以使用printf
(或echo -n但不像printf
那样可移植)
答案 1 :(得分:1)
我的脚本没有任何错误!虽然回声需要如下所示:
echo "input : "
read a
for ((i=0; i<a; i++))
do
for ((j=0; j<i; j++))
do
echo -ne "*"
done
echo -ne "\n"
done
您可以尝试在访问变量时在变量前添加$。 它没有给我任何错误。
答案 2 :(得分:0)
#!/bin/bash
print_starry_row()
{
n="$1"
for ((i=0;i<n;i++))
{
echo -n "*"
}
echo
}
read -p "Enter number of stars? " num
if [[ "$num" -eq $num ]]
then
for ((i=1;i<=num;i++))
{
print_starry_row $i
}
else
echo "You must enter a valid integrer"
fi