首页
/
每日頭條
/
生活
/
shell腳本編程詳解
shell腳本編程詳解
更新时间:2025-01-09 18:06:58

需求:打印一個正三角形,要求用戶輸入一個數字n,然後打印邊長為n個*字符的正三角形。

需求分析:

1. 正三角形,即三條邊長度相同,三個角都為60°

2. 腳本需要用戶交互,所以使用read -p實現,關鍵代碼

read -p "Please input a number: " n

3. 正三角形,第一行為1個*,第二行為2個*,第三行為3個*,……以此類推,所以打印的*個數是遞增的。假設n為10,關鍵代碼

n=10 for i in `seq $n` do for j in `seq $i` do echo -n "*" done echo done

結果如下圖

shell腳本編程詳解(Shell腳本習題打印三角形)1

這段代碼裡,用到了echo -n,這是為了不打印換行符,從而實現第2行裡兩個*連在一起,3行裡3個*連在一起,……

而每行最後面還需要換行,所以腳本裡第8行代碼的echo就是為了打印換行符。

4. 為了讓打印的三角形美觀,每個*後面需要帶一個空格,*和空格就需要兩個字符。假若如此的話,每行的字符都應該是2n個,隻不過第一行除了一個*,其它字符都是空格,第二行除了兩個*外,其它字符都是空格,當然兩個*之間應該有一個空格。

5. 按上面的規律,第一行打印1對“* 空格”,第二行打印兩對“* 空格”,第三行打印三對“* 空格”,……

假設n為10,關鍵代碼如下:

n=10 for i in `seq $n` do for j in `seq $i` do echo -n "* " done echo done

相比較之前代碼,僅僅是在*後面加了個空格。效果如下圖:

shell腳本編程詳解(Shell腳本習題打印三角形)2

6. 再來說一個關鍵問題,第一行在打印“* 空格”之前,應該先打印n-1個空格,然後再打印*,第二行打印n-2個空格,然後再打印*,第三行打印n-3個空格,然後打印*,……到了第n行也就是最後一行,打印0(n-n)個空格。

假設n為10,關鍵代碼如下:

n=10 for i in `seq $n` do for k in `seq $[$n-1] -1 $i` do echo -n " " done for j in `seq $i` do echo -n "* " done echo done

代碼第4行,seq $[$n-1] -1 $i是為了實現倒序隊列,第一次打印9個空格,第二次打印8個空格,第三次打印7個空格,……,第十次打印0個空格。

所以,最終腳本寫出來是這樣的:

#!/bin/bash read -p "Please input a number: " n for i in `seq $n` do for k in `seq $[$n-1] -1 $i` do echo -n " " done for j in `seq $i` do echo -n "* " done echo done

腳本運行結果如下:

shell腳本編程詳解(Shell腳本習題打印三角形)3

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
給小孩子取名字大全
給小孩子取名字大全
1、俊成、志耀、興彬、綸濟2、超颢、科寒、偉易、淇俊3、彌茂、俊桦、仁順、旭柏4、昊然、明傑、立誠、...
2025-01-09
印尼十大島嶼排名 巴厘島無疑居榜首,其它的也都是美Cry
印尼十大島嶼排名 巴厘島無疑居榜首,其它的也都是美Cry
導語:印尼作為全球島嶼最多的國家,其中不少島嶼的景色簡直就是讓人忍不住多去幾次,那麼在印尼到底有哪些島嶼是最值得去的呢?下面本站就整理了印尼十大島嶼排名,一起來看看吧!一、巴厘島巴厘島在印尼十大島嶼排名中火爆的程度幾乎可以說已經是到了世界的各個角落,超好的環境讓人走近其中全身心便會得到放松,不論是在...
2025-01-09
海口十大甜品店排行榜:鹽值上榜,第二有地道菠蘿包
海口十大甜品店排行榜:鹽值上榜,第二有地道菠蘿包
海口這座城市因為氣候和地勢的原因,一年四季的溫度都是居高不下的,所以酸甜可口的飲料和酥軟甜蜜的甜品非常的受歡迎,各種甜品店和糖水鋪也是層出不窮,本站今天為大家帶來了海口的十大甜品店排行榜,一起來看看最受歡迎的甜品店是哪幾家吧~海口十大甜品店排行榜1.十三姨功夫糖水鋪2.禦華麟3.嘉藝坊4.清補涼5....
2025-01-09
長袖連衣裙什麼牌子好?長袖連衣裙十大品牌排行榜
長袖連衣裙什麼牌子好?長袖連衣裙十大品牌排行榜
導語:在夏秋兩季裙子一定會是女士們比較青睐的服飾,而如今的市場上裙子的種類也是相當的豐富,為了減輕防曬後果,很多的人會選擇長袖連衣裙,那麼長袖連衣裙什麼牌子好呢?哪些牌子的長袖連衣裙是款式最豐富的呢?今天本站就整理了長袖連衣裙十大品牌排行榜推薦您參考!長袖連衣裙十大品牌排行榜1、太平鳥2、生活在左3...
2025-01-09
十大日本純愛電影 這些唯美的愛情故事,你看過幾部
十大日本純愛電影 這些唯美的愛情故事,你看過幾部
日本的街道以及城市給人一種非常清新的感覺,他們的影視作品也不例外,有許多經典的純愛電影,看了之後會讓人特别的治愈。今天小編就來為大家盤點十大日本純愛電影,感興趣的小夥伴快來看看吧。十大日本純愛電影:1、情書2、秒速5厘米3、隻是愛着你4、花與愛麗絲5、戀空6、向陽處的她7、想要擁抱你8、花水木9、天...
2025-01-09
Copyright 2023-2025 - www.tftnews.com All Rights Reserved