二、Shell变量

什么是变量

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

常见变量类型

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

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

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

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

环境变量创建

第一种方式:

命令行创建,退出即丢失

第二种方式:

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

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

环境变量查询

set

输出全局变量和局部变量

env

只输出全局变量

declare

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

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

[[email protected] 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

[[email protected] ~]# export NAME=tz
[[email protected] ~]# NAME=tz;export NAME
[[email protected] ~]# declare -x NAME=tz

自定义永久环境变量

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

路径为

./bashrc(推荐在此配置)

.bash_profile

自定义登录提示

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

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

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

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

[[email protected] ~]# echo ‘echo "Hi! My dear2~"‘ >/etc/profile.d/welcome.sh
[[email protected] ~]# 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需要使用\n换行输出

[[email protected] ~]# echo $HOME
/root
[[email protected] ~]# echo $PWD
/root
[[email protected] ~]# echo $USER
root
[[email protected] ~]# printf "$HOME\n"
/root

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

env只输出环境变量

[[email protected] ~]# 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输出环境变量跟局部变量

[[email protected] ~]# 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删除本地跟环境变量

[[email protected] ~]# export NAME=tx
[[email protected] ~]# echo $NAME
tx
[[email protected] ~]# unset NAME
[[email protected] ~]# echo $NAME

原文地址:https://www.cnblogs.com/tz90/p/12633072.html

时间: 2024-08-30 12:15:34

二、Shell变量的相关文章

Shell基础学习(二) Shell变量

1.数据类型: 字符串 数组 2.变量的命名规范: 只能以a-z或A-Z开头 中间不能有空格,可以使用_ 不能使用标点符号 不能使用shell的关键字 3.变量类型: 环境变量 局部变量 shell变量 4.字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号: 完全按引号中的内容输出,内部变量无效,转义字符也无效 双引号: 可以解析内部变量,可以出现转义字符 拼

shell基本应用(二)shell变量的使用

自定义变量:有系统用户自己定义的变量,只有用户自己的shell环境中才有效,也称为本地变量,在shell脚本编程时,通常会设置一些特定的自定义变量,以适应程序执行过程中的各种变化,满足不同的需求. 定义一个新的变量: 定义变量的格式"变量名=变量值"切记等号两边没有空格,变量名称需要首字母或者下划线开头,名称中不要包含特殊字符(如+.-.*./...?.%.&.#等)例:定义一个名为 test的变量(值为managerweb)和一个名为installer(值为publishwe

bash参考手册之五(shell变量)续二

EMACS 如果Bash在shell启动时,在环境中发现这个变量的值是 't',则会认为shell在Emacs shell缓冲区中运行,而禁止行编辑. ENV 类似于BASH_ENV,在shell以POSIX模式调用时使用.(见Bash POSIX模式) EUID 当前用户的数字形式的有效用户ID.这个变量是只读的. FCEDIT 内建命令fc带-e选项时的默认编辑器. FIGNORE 冒号分隔的后缀列表,该列表的内容在执行文件名完成时忽略.一个文件名的后缀匹配FIGNORE中的一个元素时,则该

二十四、管道符和作业控制、shell变量、环境变量配置文件

二十四.管道符和作业控制.shell变量.环境变量配置文件一.管道符和作业控制管道符:| 表示把前面文件输出的内容传递给后面的命令.|grep:过滤,指定关键词的命令.|grep 'aaa'.作业控制Ctrl+z:暂停一个任务.等于把当前任务放在了后台,使用fg命令再调回任务里.fg:前台,foreground.bg:后台,将任务调到后台去运行.示例: vim /etc/passwd [1]+ 已停止 vim /etc/passwd可以停止多个任务,被暂停的任务会有编号.想调回哪个就fg 1或者

Linux学习笔记(二十四)管道符和作业控制、shell变量、环境变量配置文件

一.管道符和作业控制cat 1.txt |wc -l ; cat 1.txt |grep 'aaa'将前面命令的结果输入给后面的命令ctrl z 暂停一个任务.这时候任务隐藏到后台,通过fg可以重新吊起任务到前台运行jobs查看后台的任务bg[id]把任务调到后台fg[id]把任务调到前台上图中可以看到,后台运行并不影响继续输入命令,红线部分就是随机输入的字符fg +id 将命令从后台调至前台,这时候就可以ctrl +z中止命令命令后面加&直接丢到后台 二.shell变量PATH,HOME,PW

shell基础学习系列二:变量

Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z). 中间不能有空格,可以使用下划线(_). 不能使用标点符号. 不能使用bash里的关键字(可用help命令查看保留关键字). 变量定义举例: myUrl="http://see.xidian.edu.cn/cp

shell学习笔记之二(变量)

是一种弱类型的变量,声明时不需要指定其变量类型,也不需要遵循"先声明后使用",任何时候只要想用就可以用. 局部变量 在某个shell中生效的变量,在其他shell中无效.可以使用local内建命令来"显示"的声明局部变量 环境变量 shell脚本中,默认是全局的 预设的环境变量: BASH:说明bash的全路径 BASH_VERSION CDPATH:用于快速进入目录 EUID:记录当前用户的UID FUNCNAME :在用户函数体内部,记录当前函数体的函数名 HI

awk中使用shell变量

其实在awk里,是不能直接使用shell变量的 方法是:awk -v 选项让awk 里使用shell变量 TIME=60 awk -v time="$TIME" 'BEGIN{FS="|"} {if ($7>time) print $2 }' 这样要注意:在awk里,time不能加$符号. 网上说如下方法都可行: 一:"'$var'" 这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如: var="test&quo

Linux学习日记—使用Shell变量

Shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应的变化. [变量的作用] 为灵活管理Linux系统提供特定参数,而有两层意思: 1.变量名:使用固定的名称,由系统预设或用户自定义 2.变量值:能够根据用户设置,系统环境的变化而变化 [变量的类型] 1.自定义变量:由用户自己定义,修改和使用 2.环境变量:由系统维护,用于设置工作环境 3.位置变量:通过命令行给脚本程序传递参数 4.预定义变量:Bash中内置一类变量,不能直接修改 [自