溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux中如何用Bash實(shí)現(xiàn)猜數(shù)字

發(fā)布時(shí)間:2021-10-25 10:56:05 來(lái)源:億速云 閱讀:305 作者:小新 欄目:系統(tǒng)運(yùn)維

小編給大家分享一下linux中如何用Bash實(shí)現(xiàn)猜數(shù)字,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

用 Bash 猜數(shù)字

Bash 是大多數(shù) Linux 系統(tǒng)的標(biāo)準(zhǔn) shell。除了提供豐富的命令行用戶界面外,Bash 還以腳本的形式支持完整的編程語(yǔ)言。

如果你對(duì) Bash 不熟悉,我推薦你看這些介紹:

  • 什么是 Bash?。

  • 開(kāi)始使用 Bash 編程

  • 系統(tǒng)管理員的 Bash 腳本入門

  • 如何在 Bash 中編寫函數(shù)

  • 閱讀更多關(guān)于 Bash 的信息

你可以通過(guò)編寫一個(gè) Bash 版本的“猜數(shù)字”游戲來(lái)探索它。這是我的實(shí)現(xiàn):

#!/bin/bash number=$(( $RANDOM % 100 + 1 )) echo "Guess a number between 1 and 100" guess=0 while [ "0$guess" -ne $number ] ; do        read guess        [ "0$guess" -lt $number ] && echo "Too low"        [ "0$guess" -gt $number ] && echo "Too high"done echo "That's right!"exit 0

拆解這個(gè)腳本

腳本中的第一行,#!/bin/bash 告訴 Linux 使用 Bash shell 來(lái)運(yùn)行這個(gè)腳本。每個(gè)腳本都以 #! 字符對(duì)(LCTT 譯注:釋伴)開(kāi)始,這表示它是一個(gè) shell 腳本。緊跟在#! 后面的是要運(yùn)行的 shell。在本例中,/bin/bash 是指 Bash shell。

要給一個(gè)變量賦值,在變量名后面列出 = 號(hào)。例如,語(yǔ)句 guess=0 給 guess 變量分配一個(gè)零值。

你也可以使用 read 語(yǔ)句提示用戶輸入一個(gè)值。如果你寫了 read guess 語(yǔ)句,Bash 會(huì)等待用戶輸入一些文本,然后把這個(gè)值存儲(chǔ)在 guess 變量中。

要引用一個(gè)變量的值,在變量名前使用 $。所以, 在 guess 變量中存儲(chǔ)了一個(gè)值后, 你可以使用 $guess 來(lái)檢索它。

你可以使用任何你喜歡的變量名稱,但是 Bash 為自己保留了一些特殊的變量名稱。一個(gè)特殊的變量是 RANDOM,每次引用它都會(huì)產(chǎn)生一個(gè)很大的隨機(jī)數(shù)。

如果你想在存儲(chǔ)一個(gè)值的同時(shí)執(zhí)行一個(gè)操作,你需要用特殊的括號(hào)把語(yǔ)句括起來(lái)。這將告訴 Bash 先執(zhí)行該語(yǔ)句,而 = 則將結(jié)果值存儲(chǔ)在變量中。要評(píng)估一個(gè)數(shù)學(xué)表達(dá)式,使用 $(()) 圍在你的語(yǔ)句上。雙括號(hào)表示一個(gè)算術(shù)表達(dá)式。在我的例子中,number=$(( $RANDOM % 100 + 1 )) 評(píng)估表達(dá)式 $RANDOM % 100 + 1,然后將值存儲(chǔ)在 number 變量中。

標(biāo)準(zhǔn)的算術(shù)運(yùn)算符,如 +(加)、-(減)、*(乘)、/(除)和 %(模)都適用。

這意味著語(yǔ)句 number=$(( $RANDOM % 100 + 1 )) 產(chǎn)生一個(gè) 1 到 100 之間的隨機(jī)數(shù)。模數(shù)運(yùn)算符(%)返回兩個(gè)數(shù)相除后的余數(shù)。在這種情況下,Bash 將一個(gè)隨機(jī)數(shù)除以 100,剩下的余數(shù)范圍是 0 到 99,通過(guò)在這個(gè)值上加 1,你可以得到一個(gè)介于 1 和 100 之間的隨機(jī)數(shù)。

Bash 支持像循環(huán)這樣的條件表達(dá)式流程控制。在“猜數(shù)字”的游戲中,只要 guess 中的值不等于 number,Bash 就會(huì)繼續(xù)循環(huán)。如果猜的數(shù)小于隨機(jī)數(shù),Bash 就會(huì)打印“太低”,如果猜的數(shù)大于數(shù)字,Bash 就會(huì)打印“太高”。

它是如何工作的

現(xiàn)在你已經(jīng)寫好了你的 Bash 腳本,你可以運(yùn)行它來(lái)玩“猜數(shù)字”游戲。一直猜,直到你找到正確的數(shù)字:

Guess a number between 1 and 10050Too high30Too high20Too high10Too low15Too high13Too low14That's right!

每次運(yùn)行這個(gè)腳本,Bash 都會(huì)隨機(jī)選擇一個(gè)不同的數(shù)字。

這個(gè)“猜數(shù)字”游戲是學(xué)習(xí)新的編程語(yǔ)言時(shí)的一個(gè)很好的入門程序,因?yàn)樗砸环N很直接的方式鍛煉了幾個(gè)常見(jiàn)的編程概念。通過(guò)在不同的編程語(yǔ)言中實(shí)現(xiàn)這個(gè)簡(jiǎn)單的游戲,你可以展示一些核心概念,并比較每種語(yǔ)言的細(xì)節(jié)。

以上是“l(fā)inux中如何用Bash實(shí)現(xiàn)猜數(shù)字”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI