欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 运维知识 > linux >内容正文

linux

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

发布时间:2024/10/14 linux 25 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 linux bash 局部变量赋值,linux之bash的基础特性(四)变量,配置文件及env,printenv,export,declare,set,unset,readonly简单命令... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

变量

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

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简单命令...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图