shell变量

一、变量分类

注意:shell中定义变量的时候   “=”  左右两边没有空格

普通变量

        在命令行或脚本中定义的变量

环境变量

        自定义环境变量

        去定义自定义环境变量:export  或 declare

        

export 变量名=值

变量名=值
export 变量名

declare -x 变量名=值

如果定义变量的位置不同,那么它生效的位置也不同

                永久环境变量:写在一些文件(开机会读取,ssh会读取,切换用户会读取的)

~/.bash_profile    #用户家目录下:针对某一个用户
~/.bashrc          #用户家目录下
#如果再这两个文件中定义了环境变量:那么只有这个用户可以访问得到,其他用户访问不到


#所有用户的共用文件
/etc/profile
/etc/bashrc
/etc/profile.d
#如果再着两个文件,以及再、etc/profile.d这个目录下定义的文件,针对所有用户

#这几个文件的关系

~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then        #如果~/.bashrc存在,执行这个文件
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
~


vim ~./bashrc

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
#如果/etc/bashrc 文件存在,则执行这个文件
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi


               

        临时换将变量:临时定义,在命令行内或脚本定义(不会再次开机或者进行ssh链接或者切换用户啊的时候读取)

练习

1、为一个普通用户:shell_user 定义一个华宁变量:normal_user=normal变量定义在什么地方?

        用户加目录下: .bash_profile 或者.bashrc

        添加后直接获取不到:需要去使用source 或者 “.” 执行脚本,或者重新登陆

2、为所有用户定义一个华宁变量:all_ser=all变量定义在哪儿?

        /etc/profile或者/etc/bashrc或者/etc/profile.d

3、为root用户定义一个环境变量 :root_user=root 变量定义再什么地方?

        用户加目录下:.bashprofile或者.bashrc

        系统环境变量

二、变量的命名

使用数字、字母、下划线给变量命名

不能以数字开头

可以给同一个变量复制多次,最后一次会覆盖之前的值

三、查看变量的值

1.查看单个变量的值

         echo $变量名        或echo ${变量名}

        printf "$变量名\n"      或 printf "{变量名}\n"        单引号会让引号内的所有字符失效,双引号保留$ \ 的含义

        print打印        printf格式化打印

2.查看多个变量的值

        set:查看所有的变量和函数

        declare:查看所有的变量和函数

        env:显示所有的全局变量  

四、变量的定义

shell中定义的变量,不需要指定类型,也可以指定类型(比较薄弱)

[root@localhost shell_code]# temp=123;data=$temp;data2='$temp';data3="$temp"
[root@localhost shell_code]# echo $data $data2 $data3
123 $temp 123

双引号和单引号的区别:当负值时如果中间带有空格优选双引号
[root@localhost shell_code]# data=`pwd`  //反引号:放的是命令,获取命令的执行结果
[root@localhost shell_code]# echo $data
/root/shell_code
[root@localhost shell_code]# data2=$(pwd)  //和反引号作用相同,为了预防在某些场景中反引号有其他含义
[root@localhost shell_code]# echo $data2
/root/shell_code
[root@localhost shell_code]#

五、脚本传参

$#    命令行的参数个数
$0    当前脚本名称
$n    当前传递给脚本的第n个参数,$1:就表示代码传入的弟一个参数,$2:表示代码传入的第二个参数...
$@    代表所有的参数:“参数1” “参数2” “参数3”....
$*    代表所有的参数:"参数1 参数2 参数3 ...."
$?    上一条命令执行完成的退出码:exit code
$$    返回进程ID

使用循环:打印参数如果只打印了一个,说明是一个整体

六、取消变量

unset 变量

七、变量的运算

算数运算符:+,-,*,/,%,**

赋值运算符:=,+=,-=,/=,%=,**=

                     data=1,data = data + 1 ==> data +=1

自增和自减:data++,++data,data--,--data

                        符号在前以及符号再后的区别:在后先赋值再自增,在前先自增后赋值

位运算符:&(与),|(或),^(异或),~(取非),<<,>>

10: 2^3+2  -> 二进制从右到左  ->  依次是从低位到最高位:2^0,2^1,2^2…… 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值