shell 基础(2)- 变量

2019-11-25  本文已影响0人  足__迹

分类

定义变量

单引号和双引号的区别
单引号 所见即所得
双引号 可以引用变量


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

示例:


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.

上一篇下一篇

猜你喜欢

热点阅读