分类
- 本地变量
- 全局变量
- 内置变量
定义变量
-
本地变量
image.png
单引号和双引号的区别
单引号 所见即所得
双引号 可以引用变量
image.png
-
全局变量
image.png
让定义的变量在所有的base中生效,需要在cat ~/.bashrc定义
示例:
方法一:
[root@iz2ze8p943jz0rcey20ijlz ~]# pass='123456'
[root@iz2ze8p943jz0rcey20ijlz ~]# export pass
[root@iz2ze8p943jz0rcey20ijlz ~]# env | grep pass
pass=123456
方法二:
[root@iz2ze8p943jz0rcey20ijlz ~]# export pass1="$pass"
[root@iz2ze8p943jz0rcey20ijlz ~]# env | grep pass
pass=123456
pass1=123456
#不同base调用刚才生成的全局变量,不能调用
[root@iz2ze8p943jz0rcey20ijlz ~]# env | grep pass
[root@iz2ze8p943jz0rcey20ijlz ~]#
示例2: 编辑可以全局使用的变量(可用于部署环境变量)
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export username="starry sky"
~
编辑完成就需要使用source 使修改生效
唯一全局变量.png
- 查看变量
以下三种方法中脚本使用推荐使用第三种,可以避免报错
image.png
示例:
[root@iz2ze8p943jz0rcey20ijlz ~]# echo $username
starry sky
[root@iz2ze8p943jz0rcey20ijlz ~]# echo '$username'
$username
[root@iz2ze8p943jz0rcey20ijlz ~]# echo ${username}
starry sky
- 内置变量
示例:
image.png
[root@iz2ze8p943jz0rcey20ijlz test]# bash read_variable.sh a b c
当前执行的脚本名称read_variable.sh“
echo 当前获取脚本的第一个参数a“
当前获取脚本的第二个参数b“
echo 当前执行的脚本中的参数总个数3“
bash "test.sh" 这种形式启动时 ,$0才被设置成文件名。source是bash的内建命令,把文件读取到当前bash中执行,相当于在当前bash手动输入命令,所以$0是bash.
网友评论