通过编写“猜测数字”游戏来探索Linux中的Bash
学习一种新的编程语言是很有趣的。每当Jim Hall尝试学习新的变量时,他都会专注于定义变量、编写语句和计算表达式。一旦他对这些概念有了大致的理解,通常可以自己找出其余的概念。大多数编程语言都有一些相似之处,因此一旦您了解了一种编程语言,学习下一种编程语言就需要了解其独特的细节并识别其中的不同之处。
为了帮助Jim Hall练习一种新的编程语言,他喜欢编写一些测试程序。Jim Hall经常编写的一个示例程序是一个简单的“猜测数字”程序,其中计算机选择一个介于1和100之间的数字,并要求猜出数字。程序循环直到Jim Hall猜对了。
“猜测数字”程序在编程语言中使用了几个概念:如何为变量赋值、如何编写语句以及如何执行条件计算和循环。对于学习一种新的编程语言来说,这是一个很好的实践实验。
![](https://upload-images.jianshu.io/upload_images/24563956-7a415427b66b27dc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
猜猜巴什的号码
巴什是大多数Linux系统的标准shell。除了提供丰富的命令行用户界面外,bash还支持以下形式的完整编程语言:剧本.
您可以通过编写“猜测数字”游戏的版本来探索Bash。以下是我的实现:
![](https://upload-images.jianshu.io/upload_images/24563956-ba046a9e136f3738.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
分解剧本
脚本中的第一行,#!/bin/bash告诉Linux使用Bashshell运行这个脚本。每个脚本都以#!字符对,这表示这是一个shell脚本。接下来会发生什么#!就是要运行的外壳。在这种情况下,/bin/bash是弹壳。
若要将值赋值给变量,请列出变量的名称,后面跟着=签个字。例如,语句guess=0为guess变量。
还可以使用read声明。如果你写read guess,Bash等待用户输入一些文本,然后将该值存储在guess变量。
若要引用变量的值,请使用$在变量名之前。因此,在guess变量,您可以使用$guess.
您可以为变量使用任何您喜欢的名称,但是Bash为其本身保留了一些特殊的变量名。一个特殊的变量是RANDOM,这会在每次引用它时生成一个非常大的随机数。
![](https://upload-images.jianshu.io/upload_images/24563956-b953d8a546304f33.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果要在存储值的同时执行操作,则需要将语句括在特殊括号中。这将告诉Bash首先执行该语句,并且=将结果值存储在变量中。若要计算数学表达式,请使用$(( ))关于你的陈述。双括号表示算术表达式。在我的例子中,number=$(( $RANDOM % 100 + 1 ))计算表达式$RANDOM % 100 + 1然后将值存储在number变量。
标准算术运算符,如+(加上)-(减),*(乘),/(分),和%(模数)适用。
这意味着number=$(( $RANDOM % 100 + 1 ))生成一个介于1到100之间的随机数。模运算符(%)返回余数除以两个数字之后。在这种情况下,Bash将一个随机数除以100,剩下的余数在零到99之间。通过将一个值加到这个值,就可以得到一个介于1到100之间的随机数。
巴什支架条件表达式和流量控制就像循环。在“猜测数字”游戏中,bash继续循环,只要在guess不等于number。如果猜测小于随机数,则Bash打印“太低”,如果猜测大于随机数,则Bash打印“太高”。
![](https://upload-images.jianshu.io/upload_images/24563956-135effa3af3ae155.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
它是如何工作的
现在您已经编写了Bash脚本,您可以运行它来玩“猜测数字”游戏。继续猜测,直到找到正确的数字:
![](https://upload-images.jianshu.io/upload_images/24563956-e0fe2f8fa673c676.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
每次运行脚本时,Bash都会选择不同的随机数。
当学习一种新的编程语言时,这个“猜测数字”游戏是一个很好的入门程序,因为它以一种非常简单的方式练习了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,您可以演示一些核心概念,并比较每种语言的细节。
你有最喜欢的编程语言吗?你会怎么写“猜数字”游戏?遵循本文章,查看您可能感兴趣的其他编程语言的示例。
![](https://upload-images.jianshu.io/upload_images/24563956-9bd052ad0b8f7df3.gif?imageMogr2/auto-orient/strip)
最后,如果你也想成为程序员,想要快速掌握编程,赶紧加入学习企鹅圈子!
里面有资深专业软件开发工程师,在线解答你的所有疑惑~编程语言入门“so easy”
编程学习书籍:
![](https://upload-images.jianshu.io/upload_images/24563956-178bd2e18b5d99bc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
编程学习视频:
![](https://upload-images.jianshu.io/upload_images/24563956-5695c644d911cc4a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)