linux bash 局部变量赋值,linux之bash的基础特性(四)变量,配置文件及env,printenv,export,declare,set,unset,readonly简单命令... -ag凯发k8国际
变量
主要有本地变量,环境变量,局部变量,位置变量,只读变量,特殊变量
1.本地变量:该类变量的作用范围仅限于当前shell进程,在其他shell进程包括其子或父进程均无效
该类变量赋值方式:
1)直接赋值varname=value的形式
2)变量引用赋值varname="$varname"或varname=${varname}形式
3)命令引用赋值varname=`command`或varname=$(command)的形式
4)几种特殊符号的说明:
1>单引号''表示强引用保留引号中的内容不会因为引用变量而改变
2>双引号""表示弱引用内容会因引用变量而发生改变
3>反斜线\转义单个字符
4>反引号``表示将内容作为命令执行
2.环境变量:该类变量的作用范围仅限于当前shell进程及其子shell进程
1)声明方式:export varname=value或declare -x varname=value
2)显示环境变量:env,printenv,export三个命令都会显示而set命令会显示所有已定义的变量
3)销毁变量:unset varname
3.只读变量:一旦声名不可改变即常量constant
声名方式:readonly varname=value或declare -r varname=value
4.特殊变量:
$?表示最近的一次命令的执行状态码
$0表示命令本身的名字
$#表示传递参数的个数
$*传递的所有参数,以字符串的形式
$@传递的所有参数,以单个字符的形式
5.位置变量:指明第几个参数$1,$2,$3,...并且支持换岗操作shift [n]命令
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其实就是将第二个参数的值移到第一个参数的位置
配置文件
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
总结
以上是ag凯发k8国际为你收集整理的linux bash 局部变量赋值,linux之bash的基础特性(四)变量,配置文件及env,printenv,export,declare,set,unset,readonly简单命令...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: jenkins linux 配置文件,j
- 下一篇: linux c嵌入汇编语言,linux