Shell变量

Posted 努力吧阿团

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell变量相关的知识,希望对你有一定的参考价值。

什么是变量

变量是暂时存储数据的地方,所存储的数据存在于内存空间中,通过调用内存空间中变量的名字取出与变量对应的数据。

常见变量类型

  • 环境变量
  • 局部变量
  • Shell变量

环境变量用于定义Shell的运行环境,保证Shell命令正确执行。

环境变量可分为自定义环境变量和bash内置环境变量。

环境变量名字均采用大写。


环境变量创建

第一种方式:

命令行创建,退出即丢失

第二种方式:

配置文件创建,永久保存。

配置文件路径为家目录下的.bash_profile或.bashrc


环境变量查询

set

输出全局变量和局部变量

env

只输出全局变量

declare

输出所有的变量、函数、导出的变量

set -o 显示bash Shell所有参数的配置信息

[root@tz yum.repos.d]# set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off


自定义临时环境变量

三种方式自定义环境变量,如变量名NAME,值tz

[root@tz ~]# export NAME=tz
[root@tz ~]# NAME=tz;export NAME
[root@tz ~]# declare -x NAME=tz


自定义永久环境变量

常见在用户加目录下配置文件中定义。

路径为

./bashrc(推荐在此配置)

.bash_profile


自定义登录提示

1、在/etc/motd文件中定义

[root@tz ~]# echo ‘Hi! My dear~‘ > /etc/motd
[root@tz ~]# exit
连接断开
连接成功
Last login: Sat Apr  4 23:11:15 2020 from 192.168.213.1
Hi! My dear~

2、在/etc/profile.d/目录下定义脚本文件

这里注意需要使用echo命令输出

[root@tz ~]# echo ‘echo "Hi! My dear2~"‘ >/etc/profile.d/welcome.sh
[root@tz ~]# exit
连接断开
连接成功
Last login: Sun Apr  5 01:21:02 2020 from 192.168.213.1
Hi! My dear~
Hi! My dear2~


显示跟取消环境变量

1、通过echo或printf命令打印环境变量

printf需要使用 换行输出

[root@tz ~]# echo $HOME
/root
[root@tz ~]# echo $PWD
/root
[root@tz ~]# echo $USER
root
[root@tz ~]# printf "$HOME
"
/root

2、使用env或set显示默认的环境变量

env只输出环境变量

[root@tz ~]# env
XDG_SESSION_ID=13
HOSTNAME=tz
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.213.1 14832 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/0
USER=root

set输出环境变量跟局部变量

[root@tz ~]# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()

3、unset删除本地跟环境变量

[root@tz ~]# export NAME=tx
[root@tz ~]# echo $NAME
tx
[root@tz ~]# unset NAME
[root@tz ~]# echo $NAME







以上是关于Shell变量的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程入门

代码片段:Shell脚本实现重复执行和多进程

玩转Bash变量

玩转Bash变量

2.5.2 变量

如何创建片段以重复变量编号中的代码行