linux中如何用Bash实现猜数字
小编给大家分享一下linux中如何用Bash实现猜数字,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
成都创新互联公司主营平邑网站建设的网络公司,主营网站建设方案,成都app开发,平邑h5微信小程序搭建,平邑网站营销推广欢迎平邑等地区企业咨询
用 Bash 猜数字
Bash 是大多数 Linux 系统的标准 shell。除了提供丰富的命令行用户界面外,Bash 还以脚本的形式支持完整的编程语言。
如果你对 Bash 不熟悉,我推荐你看这些介绍:
什么是 Bash?。
开始使用 Bash 编程
系统管理员的 Bash 脚本入门
如何在 Bash 中编写函数
阅读更多关于 Bash 的信息
你可以通过编写一个 Bash 版本的“猜数字”游戏来探索它。这是我的实现:
#!/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
拆解这个脚本
脚本中的第一行,#!/bin/bash
告诉 Linux 使用 Bash shell 来运行这个脚本。每个脚本都以 #!
字符对(LCTT 译注:释伴)开始,这表示它是一个 shell 脚本。紧跟在#!
后面的是要运行的 shell。在本例中,/bin/bash
是指 Bash shell。
要给一个变量赋值,在变量名后面列出 =
号。例如,语句 guess=0
给 guess
变量分配一个零值。
你也可以使用 read
语句提示用户输入一个值。如果你写了 read guess
语句,Bash 会等待用户输入一些文本,然后把这个值存储在 guess
变量中。
要引用一个变量的值,在变量名前使用 $
。所以, 在 guess
变量中存储了一个值后, 你可以使用 $guess
来检索它。
你可以使用任何你喜欢的变量名称,但是 Bash 为自己保留了一些特殊的变量名称。一个特殊的变量是 RANDOM
,每次引用它都会产生一个很大的随机数。
如果你想在存储一个值的同时执行一个操作,你需要用特殊的括号把语句括起来。这将告诉 Bash 先执行该语句,而 =
则将结果值存储在变量中。要评估一个数学表达式,使用 $(())
围在你的语句上。双括号表示一个算术表达式。在我的例子中,number=$(( $RANDOM % 100 + 1 ))
评估表达式 $RANDOM % 100 + 1
,然后将值存储在 number
变量中。
标准的算术运算符,如 +
(加)、-
(减)、*
(乘)、/
(除)和 %
(模)都适用。
这意味着语句 number=$(( $RANDOM % 100 + 1 ))
产生一个 1 到 100 之间的随机数。模数运算符(%
)返回两个数相除后的余数。在这种情况下,Bash 将一个随机数除以 100,剩下的余数范围是 0 到 99,通过在这个值上加 1,你可以得到一个介于 1 和 100 之间的随机数。
Bash 支持像循环这样的条件表达式和流程控制。在“猜数字”的游戏中,只要 guess
中的值不等于 number
,Bash 就会继续循环。如果猜的数小于随机数,Bash 就会打印“太低”,如果猜的数大于数字,Bash 就会打印“太高”。
它是如何工作的
现在你已经写好了你的 Bash 脚本,你可以运行它来玩“猜数字”游戏。一直猜,直到你找到正确的数字:
Guess a number between 1 and 10050Too high30Too high20Too high10Too low15Too high13Too low14That's right!
每次运行这个脚本,Bash 都会随机选择一个不同的数字。
这个“猜数字”游戏是学习新的编程语言时的一个很好的入门程序,因为它以一种很直接的方式锻炼了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,你可以展示一些核心概念,并比较每种语言的细节。
以上是“linux中如何用Bash实现猜数字”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
分享标题:linux中如何用Bash实现猜数字
地址分享:http://cdiso.cn/article/gehhhj.html