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变量的主要内容,如果未能解决你的问题,请参考以下文章