Shell-01-变量
变量
系统常用变量
#!/bin/bash
echo "默认shell: $SHELL"
echo "当前用户家目录: $HOME"
echo "内部字段分隔符: $IFS"
echo "默认语言: $LANG"
echo "默认可执行程序路径: $PATH"
echo "当前目录: $PWD"
echo "当前用户ID: $UID"
echo "当前用户: $USER"
echo "历史命令大小: $HISTSIZE"
echo "随机生成一个0-32767的整数: $RANDOM"
echo "主机名称: $HOSTNAME"
#扩展知识
#修改历史命令记录条数大小
vim /etc/profile
HISTSIZE=10000
source /etc/profile
普通变量和临时环境变量
#变量等号两边不建议空格,不然会出问题
#普通变量定义 VAR=value
#临时环境变量定义 export VAR=value
#区别
#在当前shell进程中定义的环境变量,其作用域是当前的shell进程
#当用 export 命令导入到系统环境变量时,则作用域是shell进程以及shell的子进程
不使用export定义变量

使用export定义变量

注意:在执行脚本的时候,会在当前终端会生成一个子shell去执行脚本的命令,而不会直接去执行系统命令

位置变量
位置变量是指的shell脚本或者函数后面跟的 $n 变量
$n 取值范围 $1 $2 $3 ... $9, 从第10个开始需要使用花括号调用 ${10}

shift 命令
执行一次shift命令,位置变量个数就会减一,而变量值会提前一位
也可以理解丢弃当前位置的变量

shift n 可移动n位

特殊变量
$0 脚本自身名字
$? 上一条命令返回的状态码,0为成功,非0则执行失败
$# 位置参数总数
$* 所有的位置参数被看做成一个字符串
$@ 所有的位置参数被看做成独立的字符串
$$ 当前进程PID
$! 上一条后台运行的进程的PID

变量的引用
= 变量赋值
+= 两个变量相加(相当于字符串拼接)
在Shell中所有的变量默认都是字符串型


单引号、双引号、反撇号
`......`
反撇号等效于 $(......),相当于先执行命令,在把命令返回结果赋值

单引号和双引号之间的差别
单引号会忽略特殊字符
双引号会解释特殊字符原有的意义 如 $ 、! 等


转载请注明出处哟~
https://www.cnblogs.com/lichengguo

浙公网安备 33010602011771号