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