Linux--Shell编程入门
Shell
是用户与Linux操作系统沟通的桥梁。Linux的Shell种类众多,这里我们学习的是bash,也就是Bourne Again Shell。因为他易用和免费,并且是大部分Linux默认的Shell。
定义
shell脚本文件格式
文件名后缀通常是.sh
#!/bin/bash (同样还可以使用#!/bin/sh)
#这里是注释脚本执行的常用方式,比如mo.sh
1、mo.sh(需有执行权限并且环境变量PATH中有(.))
2、./mo.sh(只要保证这个脚本具有执行权限即可)
3、/home/momo1/mo.sh(只要保证这个脚本具有执行权限即可)
4、bash mo.sh(直接可以执行,甚至这个脚本文件中的第一行都可以不引入/bin/bash)
5、bash -x /home/momo1/mo.sh #bash的单步执行
6、bash -n /home/momo1/mo.sh #bash语法检查
变量
变量不需要声明,初始化不需要指定类型。分为,本地变量、环境变量、局部变量、位置变量、特殊变量。变量赋值时“=”等号左右边不能有空格。
- 变量命名
- 只能使用数字,字母和下划线,且不能以数字开头
- 变量名区分大小写
- 建议命令要通俗易懂
显示变量值: 使用echo命令,加上$变量名,也可以使用${变量名}
例如:echo $JAVA_HOME
或者echo ${JAVA_HOME}
本地变量
只对当前shell进程有效的,对当前进程的子进程和其它shell进程无效,相当于java中的私有变量(private)。
1、定义:VAR_NAME=VALUE
2、变量引用:${VAR_NAME}|$VAR_NAME
3、取消变量:unset VAR_NAME
事例如下,定义一个变量,然后将它输出到控制台
环境变量
自定义的环境变量对当前shell进程及其子shell进程有效,对其它的shell进程无效。配置到配置文件/etc/profile
中对所有shell进程都有效。
定义:export VAR_NAME=VALUE

- 配置文件中环境变量(修改后记得source /ect/profile重启)
1 | [momo1@momo1 ~]$ vim /etc/profile |
局部变量
在函数中调用,函数执行结束,变量就会消失。对shell脚本中某代码片段有效。
定义:local VAR_NAME=VALUE
位置变量
用于接收 传递过来的参数。相当于java中main函数中的args参数。
定义:$0,$1,$2,…..${n}
- 事例:定义shell脚本,内容如下:
1 | !/bin/bash |
执行命令,并传入参数
1 | [momo1@momo1 shell]$ ./site.sh xiaoxiaomo |
特殊变量
1、$?:接收上一条命令的返回状态码(状态码在0-255之间)
2、$#:参数个数
3、$*:或者$@:所有的参数
4、$$:获取当前shell的进程号(PID)(可以实现脚本自杀)(或者使用exit命令直接退出也可以使用exit [num])

符号
Shell中,符号分为:单引号、双引号、反引号
‘’单引号:不解析变量,echo ‘$xiaoxiaomo’
“”双引号:会解析变量,echo “$xiaoxiaomo”
``反引号:是执行并引用一个命令的执行结果,类似于$(…),echo `$xiaoxiaomo`