前言概述
shell编程在工作中以及面试的过程中,难免都会碰到。那么掌握它、运用它、理解它,则是一种必要的选择。正所谓:在编程的道路上,学无止境!对于shell编程,我同样也是一位学生,希望记录自己的学习过程,为自己查漏补缺,也希望可以帮到正在学习中的你。
- 什么是shell?
我想作为一名后端开发者来说,在接触了虚拟机,Linux系统之后,都不会感到陌生吧。shell是建立在Linux内核与应用程序之间的命令解释器。用户可以通过在应用程序软件使用shell编程来调用Linux内核的指令完成一定的逻辑操作。简单来说shell本身就是一种命令解释器。示意图如下:
- shell编程须知
开始shell编程的学习之前,希望大家对Linux命令有一定的了解,并会使用Linux命令,尤其是Linux下的编辑能力,即对vim命令
的使用。进行shell编程时,因为shell编程本身也就是一种脚本编程,所编写的脚本文件保持以.sh
作为后缀名,并且shell脚本文件的开头文件必须以#!/bin/bash
或者#!/bin/sh
开头,并作为第一行内容。
其实 bin 后面的 bash 或者 sh 代表了采用哪种类型的shell解释器来解释并执行shell脚本。这里的sh其实是bash的软连接
shell编程实例
首先呢,我们来看一段简单的shell脚本实例,通过编写 hello.sh
输出 hello shell。hello.sh 的内容如下:
#!/bin/bash
echo "hello shell"
执行结果
[admin@hzuwei.com ~]$ bash hello.sh
hello shell
[admin@hzuwei.com ~]$
- 在shell编程中使用变量
(1) 设置变量直接A=2
就好,*=号左边为变量名,右边为变量的具体值,并且等号的左右两边不能出现空格
。
(2)获取变量值,使用$A
即可。
(3)撤销变量值,使用unset
命令即可,例如:unset A
。
(4)常见的系统变量有:$PATH:指定命令的搜索路径 $HOME:指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录) $HISTSIZE:指保存历史命令记录的条数。 $LOGNAME:指当前用户的登录名。 $HOSTNAME:指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。 $SHELL:指当前用户用的是哪种Shell。 $LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。 $MAIL:指当前用户的邮件存放目录。 $PS1:命令基本提示符,对于root用户是#,对于普通用户是$。 $PS2:附属提示符,默认是“>”。 $JAVA_HOME:安装了JDK之后,所设置的JDK全局环境变量 $TOMCAT_HOME:安装了Tomcat之后,所设置的Tomcat全局环境变量 $MAVEN_HOME:安装了maven之后,所设置的maven全局环境变量
- shell编程中的几个常用符号
符号 描述信息 $n 获取传递给脚本或者函数的参数。($0表示shell文件名,$1…$9依次表示第1个,第2个…第9个参数。当参数超过10个时,采用 ${10},${11}的方式获取,一般建议不要超过10个参数。)。 $# 获取传递给脚本或者函数参数的个数,一般用于for循环使用 $* 获取传递给脚本或者函数参数的所有参数,将所有参数看做一个整体 $@ 获取传递给脚本或者函数参数的所有参数,每个参数为一个分区 $? 上一条命令的执行状态或者函数的返回结果
- shell编程中的几个常用符号
小结
在进行shell编程的学习中,还是要终于实践。命令虽多,用过总比见过好。好记性不如烂头,话糙理不糙呀。多用多练。下篇我们再会咯~~~
感觉有所帮助,写的不错,麻烦动动小手点个赞呦~~~欢迎指整不足之处,小编在这谢过!