多语言展示
当前在线:1166今日阅读:176今日分享:34

shell的循环与百鸡百钱问题

当今在it行业什么最火呢?没错!就是python(人工智能,机器学习,爬虫工程师)与区块链。学习两者的时候多多少少但需要接触linu的系统,shell的脚本也需要有一定的了解。现在小编简单讲述一下shell语句的循环问题,与python开发程序自动计算方案中的百鸡百钱问题。
工具/原料
1

随意在线运行的shell脚本的网站

2

或者linux系统也可以在虚拟机里测试

方法/步骤
1

这里就不从语法一一说起了,直接上案列!#案列:以实现当mark变量的值大于等于60,则输出:your grade is:pass! #否则输出your grade is failed!(并写出最后的输出结果)

2

做运维一般需要懂得Linux系统操作与shell脚本的编写,而bash是shell其中一种;#!bin/bash#输出请输入数字(有些语法与php相似)echo 'please iuput a number:'    #export表示可以传递一个或者多个变量的值“mark”export mark#read 从键盘读取变量值'mark'read mark#if语句--(使用:if---then---fi)if(('$mark' >= '60'))    #如果变量mark大于等于60,则执行then以下的语句    then    echo 'your grade is:pass!'else    echo 'your grade is failed!'fi

3

#方法二#基于第一种方法出于严谨性可以添加一个验证是否为数字的判断#!bin/bash#输出:请输入数字echo 'please iuput a number:'#read 从键盘读取赋值变量值给'mark'read mark#判断mark变量值是否为数字,否则直接退出expr $mark '+' 10 &> /dev/null#-ne:不等于if [ $? -ne 0 ];  then    echo '${mark} is not number!'  exit 0fi#如果变量mark大于等于60,则执行then以下的语句#-ge:大于等于if [ '$mark' -ge '60' ];  then   echo 'http://www.thzentea.com'else    echo 'http://m.thzentea.com'fi

4

案列2:鸡蛋5块一个, 鸭蛋3块一个, 鹅蛋 1块钱3个,求100块买100个蛋, 有几种买法;#!/bin/bashread -p '定义鸡蛋的价格(默认为5): ' eggread -p '定义鸭蛋的价格(默认为3): ' duck_eggread -p '定义鹅蛋的价格为一块钱买?只(默认为3)': goose_egg[ -z $egg ] && egg=5[ -z $duck_egg ] && duck_egg=3[ -z $goose_egg ] && goose_egg=3[ $[$egg+$duck_egg+$goose_egg] -eq 0 ] && echo '错误输入!' && exit 1gjmax=$[100/$egg]mjmax=$[100/$duck_egg]for ((i=1;i<=$gjmax;i++));do#鸡蛋的循环  for ((j=1;j<=$mjmax;j++));do    #鸭蛋的循环           xj=$[(100-$i*$egg-$j*$duck_egg)*$goose_egg]          #鸡蛋加鸭蛋的总价算出可购买的鹅蛋的个数        [ $[$xj+$i+$j] -eq 100 ] && [ $[$xj/$goose_egg + $i*$egg+$j*$duck_egg] -eq 100  ]  && echo '鸡蛋:$i, 鸭蛋:$j, 鹅蛋: $xj' || continue;      #    总数量为100个                   总价钱为100块       donedone

注意事项

shell可以在线执行也可以在linux环境执行

推荐信息