要想玩好Linux,你离不开一个东西,那就是shell,别想太多,术语说太多反而迷惑人,记住这个东西就是你用来发布命令,然后让Linux做事情。 不过有时候你要做些事情不是三下五除二就搞定的,耗时耗力的活可不少。不过,天才就是给人们解决麻烦,shell也可以编程,虽说不是说完整的编程语言,但是用来编写脚本(将命令一股脑塞到一个文件里)来控制Linux确实舒服啊! 下面就介绍下shell编程基本的规则,完事后你利用规则去干任何想干的大事情...... 第一步我们来问候全世界吧,实现输出hello world!这也侧面宣扬了每个程序员的远大理想不是么。 打开一个文件shell.sh写入:
然后添加执行权限,直接执行就OK了,第一行代表调用bash程序解释执行 获取参数:
执行bash shell.sh 1 2 输出结果为 1 2
变量: 一般SHELL变量用大写,方便阅读
清除变量:
数组:
脚本完成任务,需要些计算,包括数值计算,字符计算,布尔计算,等等 数值计算: #!/bin/bash val=`expr 2 + 2` echo "两数之和为 : $val"
数值比较:
布尔运算:
逻辑运算:
字符串运算:
文件测试:
其他检查符:
---------------------------------------------------------------- 执行任务还需要一些逻辑: if condition then command1 command2 ... commandN fiforvarin item1 item2 ... itemN do command1 command2 ... commandN donewhile condition do command done 无限循环while:docommand done 或者 whiletruedo command done 或者 for((;;))case值in模式1) command1 command2 ... commandN ;;模式2) command1 command2 ... commandN ;;esac shell编程中还可以设置函数,将一个任务逻辑包含在一个函数中,重复使用 demoFun(){ echo "这是我的第一个 shell 函数!"} echo "-----函数开始执行-----" demoFun echo "-----函数执行完毕-----" 函数传递参数: funWithParam(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "第十个参数为 $10 !" echo "第十个参数为 ${10} !" echo "第十一个参数为 ${11} !" echo "参数总数有 $# 个!" echo "作为一个字符串输出所有参数 $* !"} funWithParam 1234567893473 IO重定向
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。 如果希望屏蔽 stdout 和 stderr,可以这样写: $ command >/dev/null2>&1 好了,shell的简单编写逻辑就介绍这些了,配合Linux强大的命令,就足够写出功能更强大的shell脚本了。 ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:有纹Linux,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |