繁体   English   中英

Shell脚本多重生成器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM