[英]shell scripting Multiple generator
嗨:)需要一个项目的帮助,需要编写Shell脚本,并且需要弄清楚如何在列表中将某些数字除以某些数字后再打印汽车名称。
这是生成器,它从用户那里获取两个整数(不包括提示它们的部分),并在它们之间打印偶数。 我需要在可被5、7、10整除的数字之后打印汽车名称。
5 =福特7 =宝马10 =罗孚
发电机:
for ((n = n1; n<= n2; ++n)); do
out=$(( $n % 2 ))
if [ $out -eg 0 ] ; then
echo "$n"
fi
done
任何帮助,将不胜感激:(我完全一无所知:(谢谢
你的意思是这样吗?
n1=0
n2=10
for ((n = n1; n <= n2; ++n)); do
if (( n % 2 == 0)); then
echo -n $n
if (( n % 5 == 0)); then
echo -n ' Ford'
fi
if (( n % 7 == 0)); then
echo -n ' BMW'
fi
if (( n % 10 == 0)); then
echo -n ' Rover'
fi
echo
fi
done
输出量
0 Ford BMW Rover
2
4
6
8
10 Ford Rover
不确定您是否希望包含名称的0
行,但这是%
工作方式。 您可以根据需要添加0
的显式检查。
awk
解救!
$ awk -v start=0 -v end=70 -v pat='5=Ford,7=Bmw,10=Rover'
'BEGIN{n=split(pat,p,",");
for(i=1;i<=n;i++)
{split(p[i],d,"=");
a[d[1]]=d[2]}
for(i=start;i<=end;i+=2)
{printf "%s ",i;
for(k in a)
if(i%k==0)
printf "%s ", a[k];
print ""}}'
而不是对Fizzbuzz值进行硬编码,让程序为您处理它。 脚本解析模式,并将除数/值分配给映射a
。 在从头到尾的迭代过程中,每两个因子进行两次检查,如果有除数,则将标记附加到行中。 假设也不必为此而将启动输入为偶数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.