shell编程中的变量和符号
一、变量
1、自定义变量
名称可以用数字、字母、下划线,不能以数字开头,等号两边不能有空格,不能使用特殊符号
# 定义变量 或者 赋值 a=10 #取消变量的定义 unset a #调用变量时用$加变量名 echo $a #容易与后面内容发生混淆时用大括号 echo ${a}RMB
2、环境变量
由系统提前定义好,使用时直接调用
USER 当前用户名
HOME 当前用户的家目录
SHELL 当前用户的解释器
UID 当前用户的id号
HOSTNAME 主机名
PWD 当前位置
PATH 存储命令的路径
3、位置变量与预定义变量
$1 执行脚本时后面跟的第1个位置参数
$2 执行脚本时后面跟的第2个位置参数
$3 执行脚本时后面跟的第3个位置参数
$* 执行脚本时后面跟的所有位置参数
$# 执行脚本时后面跟的位置参数的个数
$$ Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)
$? 判断上一条指令是否执行成功,0代表成功,非0代表失败
如何查看?
#查看所有环境变量 env #配合grep搜索 env | grep HOSTNAME #查看所有变量 set #自定义变量 abcd=8888 #查找 set | grep abcd
二、符号
1、双引号 " "
作用:将某些对象变成字符串输出
a.当字符串当中存在空格的时候,必须使用双引号,如果没有空格可以不用
str=hello str="hello world"
b.当双引号中要对变量进行引用
echo "$str world"
c.在双引号当中调用shell命令,当shell命令需要识别的时候,使用反引号包裹命令
echo "`ls -l`"

2、单引号 ' '
作用:把包裹的内容当成字符串使用
请注意以下两条命令执行结果的区别

3、反引号 ··
作用:将双引号中的命令识别,然后执行命令对应的内容
4、重定向符号 >> >
> 重定向到某一个文件,完成覆盖
>> 重定向到某一个文件,完成追加
5、通配符
* 代表任意长度的任意字符
?代表一个长度的任意字符
[a-z] 代表a到z当中一个长度的任意字符
[az] 代表a或z当中的一个长度的字符
[^az] 代表指定范围以外的字符
% 从右到左尽可能少的匹配
%% 从右到左尽可能多的匹配
# 从左到右尽可能少的匹配
## 从左到右尽可能少的匹配

浙公网安备 33010602011771号