簡體   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