本文共 3930 字,大约阅读时间需要 13 分钟。
shell文件开头
shell文件必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
当编辑好脚本时,如果要执行该脚本,还必须使其可执行。
要使脚本可执行:
运行chmod +x filename这样才能用./filename 来运行
注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。
变量
在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明,直接赋值就可以,应用变量的话,用$+变量名的形式。
环境变量
.由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录
脚本中使用环境变量。
这些不是系统命令,但是他们真的很重要。
数值变量:
expr 变量1 运算符 变量2 [运算符 变量3]
+加法运算
-减法运算
\*乘法运算
%求模运算 相除后的余数
预定义变量是由bash程序预先定义好的一类特殊变量,用户只能使用而不能创建新的预定义变量,也不能直接为预定义变量赋值。常见预定义变量如下:
$#表示命令行中位置参数的个数
$*表示所有位置参数的内容
$?表示前一条命令执行后的返回状态,返回为0表示执行正确,任何非0表示运行出现异常
$0表示当前执行的脚本或程序名称
计算器脚本实例:
代码:(因为刚学 做的可能不怎么好这是本人自己做的,下面第二种方法附上老师做的,虽然功能都一样!但是代码量明显比我小很多!)
#!/bin/bash#计算器echo "----------------------"echo "- 加法运算请输入1 -"echo "- 减法运算请输入2 -"echo "- 乘法运算请输入3 -"echo "- 除法运算请输入4 -"echo "- -技术空创作 -"echo "----------------------"read -p "请选择你想要进行的运算" intcase "$int" in1) while : do read -p "请输入第一个整数" a expr $a+0 &> /dev/nullif [ $? -eq 0 ] then echo "第一个数是$a" breakelse echo "您输入的$a不是整数请重新输入"fidonewhile :do read -p "请输入第二个整数" bexpr $b +0 &> /dev/nullif [ $? -eq 0 ] then echo "第二个数是$b" breakelse echo "您输入的$b不是整数请重新输入"fidonesum=`expr $a + $b` echo "$a + $b = $sum";;2) while : do read -p "请输入第一个整数" c expr $c+0 &> /dev/nullif [ $? -eq 0 ] then echo "第一个数是$c" breakelse echo "您输入的$c不是整数请重新输入"fidonewhile :do read -p "请输入第二个整数" dexpr $d+0 &> /dev/nullif [ $? -eq 0 ]then echo "第二个数是$d" breakelse echo "您输入的$d不是整数请重新输入"fidonejian=`expr $c - $d` echo "$c - $d = $jian";;3) while : do read -p "请输入第一个整数" e expr $e+0 &> /dev/nullif [ $? -eq 0 ] then echo "第一个数是$e" breakelse echo "您输入的$e不是整数请重新输入"fidonewhile :do read -p "请输入第二个整数" fexpr $f +0 &> /dev/nullif [ $? -eq 0 ] then echo "第二个数是$f" breakelse echo "您输入的$f不是整数请重新输入"fidonechen=`expr $e \* $f` echo "$e \* $f = $chen";;4) while : do read -p "请输入第一个整数" q expr $q+0 &> /dev/nullif [ $? -eq 0 ] then echo "第一个数是$q" breakelse echo "您输入的$q不是整数请重新输入"fidonewhile :doread -p "请输入第二个整数" wexpr $w+0 &> /dev/nullif [ $? -eq 0 ] then echo "第二个数是$w" breakelse echo "您输入的$w不是整数请重新输入"fidonechu=`expr $q / $w` echo "$q / $w = $chu";;esac
------------------------------------------------------------------------------------------------------
#!/bin/bashecho " ----------------------------------"echo "|这是一个简单的整数计算器,作者YUAN|"echo " ----------------------------------"echowhile :doread -p "请输入一个整数: " nuexpr $nu + 0 &> /dev/nullif [ $? -eq 0 ] then echo "第一个数是$nu" echo breakelse echo "您输入的$nu不是整数请重新输入"fidone
while :doread -p "请输入二个整数: " nu2expr $nu2 + 0 &> /dev/nullif [ $? -eq 0 ] then echo "第二个数是$nu2" breakelse echo "您输入的$nu2不是整数请重新输入"fidoneecho "------------------"echo "| 1.加法 |"echo "| 2.减法 |"echo "| 3.乘法 |"echo "| 4.除法 |"echo "------------------"read -p "请输入您想执行的算法:" mecase $me in "1")sum=`expr $nu + $nu2`echo "$nu+$nu2=$sum";; "2")jian=`expr $nu - $nu2`echo "$nu-$nu2=$jian";; "3")chen=`expr $nu \* $nu2`echo "$nu*$nu2=$chen";; "4")chu=`expr $nu / $nu2`echo "$nu/$nu2=$chu"esac
老师的代码很精简比我的代码少多了,不过刚开始都这样!慢慢来慢慢学!创意也是一种学习的方法
最后附上个自己做的猜价格小游戏:
脚本如下:
#!/bin/bash#猜价格游戏i=10jiage=`expr $RANDOM % $i`times=0echo "商品实际价格在0-9之间,猜猜看是多少?"while truedo read -p "请输入你猜测的价格数目:" INT let times++ if [ $INT -eq $jiage ] ; then echo "恭喜你答对了,实际价格是 $jiage" echo " 你总共猜测了$times 次" exit 0 elif [ $INT -gt $jiage ] ; then echo "太高了" else echo "太低了"fidone
转载地址:http://zkema.baihongyu.com/