linux bash 局部变量赋值,linux之bash的基础特性(四)变量,配置文件及env,printenv,export,declare,set,unset,readonly简单命令...

变量

主要有本地变量,环境变量,局部变量,位置变量,只读变量,特殊变量

1.本地变量:该类变量的作用范围仅限于当前shell进程,在其他shell进程包括其子或父进程均无效

该类变量赋值方式:

1)直接赋值varName=value的形式

9adf632d8061d5a85d0f2b975657a4a0.png

2)变量引用赋值varName="$varName"或varName=${varName}形式

cc5ebba73fce9eb495e6a0b687b622b9.png

3)命令引用赋值varName=`command`或varName=$(command)的形式

67bc569fb45a367b6069eeacbfe7de9c.png

4)几种特殊符号的说明:

1>单引号''表示强引用保留引号中的内容不会因为引用变量而改变

2>双引号""表示弱引用内容会因引用变量而发生改变

e14048137f28af58cae000ae7c9592a3.png

3>反斜线\转义单个字符

9eade6f36eeb7af71fe86c559d423cf2.png

4>反引号``表示将内容作为命令执行

2.环境变量:该类变量的作用范围仅限于当前shell进程及其子shell进程

1)声明方式:export varName=value或declare -x varName=value

f13faf882f2ab15b8fcf770e07c13750.png

2)显示环境变量:env,printenv,export三个命令都会显示而set命令会显示所有已定义的变量

bfedeae5a0a8238b0472a2d74b611772.png

3)销毁变量:unset varName

667c08079b48a94ac4a2d06a49d2339e.png

3.只读变量:一旦声名不可改变即常量constant

声名方式:readonly varName=value或declare -r varName=value

d481891faefd4637c28e4202b9cd169b.png

4.特殊变量:

$?表示最近的一次命令的执行状态码

$0表示命令本身的名字

$#表示传递参数的个数

$*传递的所有参数,以字符串的形式

$@传递的所有参数,以单个字符的形式

5.位置变量:指明第几个参数$1,$2,$3,...并且支持换岗操作shift [n]命令

cdccdf14181d23b4274a83ec049466b7.png

1 #!/bin/bash2# Author:wang3 # Version:0.0.01

4# Description:测试脚本5 # CreateTime:2019/05/13

6 echo "\$#--所有参数的个数$#"

7 echo "\$*--所有参数$*"

8 echo "\$@--所有参数$@"

9 echo "\$0--命令本身$0"

10 echo "\$?--命令执行状态码$?"

11 echo "\$1--第1个参数$1"

12 echo "\$2--所有参数$2"

换岗

#!/bin/bash2# Author:wang3 # Version:0.0.01

4# Description:Test5 # CreateTime:2019/05/13

6 echo "\$#--所有参数的个数$#"

7 echo "\$*--所有参数$*"

8 echo "\$@--所有参数$@"

9 echo "\$0--命令本身$0"

10 echo "\$?--命令执行状态码$?"

11 echo "\$1--第1个参数$1"

12 shift 1

13 echo $1

执行后发现shift 1其实就是将第二个参数的值移到第一个参数的位置

a2dd6b514751ba58a63d2d8f92ca769b.png

配置文件

1.按范围来分有全局配置文件和个人配置文件

1)全局配置文件:/etc/profile  /etc/profile.d/*.sh  /etc/bashrc

2)个人配置文件:~/.bash_profile  ~/.bashrc

2.按功能分为profile类和bashrc类

1)profile类:为交互式登录shell进程提供配置,主要是定义环境变量,执行脚本

交互式登录shell(直接通过终端输入账号密码或su - username)的读取次序:/etc/profile-->/etc/profile.d/*.sh-->~/bash_profile-->~/.bashrc-->/etc/bashrc

2)bashrc类:为非交互式登录shell进程提供配置

非交互式登录shell(su username或图形界面下打开的终端或执行脚本)的读取次序:~/.bashrc-->/etc/bashrc-->~/bash_profile-->/etc/profile.d/*.sh-->/etc/profile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值