Linux shell编程学习笔记6:查看和设置变量的常用命令

上节我们介绍了变量的变量命名规则、变量类型、使用变量时要注意的事项,今天我们学习一下查看和设置变量的一些常用命令,包括变量的提升,有些命令在之前的实例中已经使用过了。

一、 echo :查看变量的值

语法格式:echo [参数] [输出内容]

常用参数:

-e:支持反斜线控制的字符转换(具体参见表 1)

-n:取消输出后行末的换行符号(内容输出后不换行)

实例: 

user@myhost:~ >echo $SHELL
/bin/bash
user@myhost:~>exec dash
\u@myhost:\w>echo $0
dash
\u@myhost:\w>echo $SHELL
/bin/bash

二、 env命令:创建、删除、显示环境变量

语法格式:env [参数] [对象]

常用参数:

-i            :创建一个新的空白环境

-u           :从当前环境中删除指定的变量

--help     :显示帮助信息

--version:显示版本信息

实例:

user@myhost : ~ # env 
USER =USER
SHLUL=1
HOME =/home/tc 
PAGER=less一 EM
PS 1 =user@Myhost : \W #
ENU=/home/ tc/ . ashrc
BACKUP=1
LOGNAME=tc 
TERM=1 inux 
PATH=/home/tc/. local/bin:/usr/ local/sbin:/usr/ local/bin:/apps/bin:/usr/sbin:/usr
/bin:/sbin:/bin
G_ F ILENAME ENCOD ING= iso8859- 1
LANG=C
MANPAGER=less一 isR 
SHELL=/bin/sh
FLWM_ TITLEBAR COL0R=58:7D :AA
PWD=/ home/tc
EDITOR=vi
user@Myhost :#
 

三、printenv命令:查看环境变量的值

语法格式:printenv [参数] [变量]

常用参数:

–null      :以空字符而非新行符结束每一输出行
–help     :显示此帮助信息并退出
–version:显示版本信息并退出

如果不写变量名字,printenv则显示出所有的环境变量

实例1:显示所有的环境变量

user@Myhost : ~  # printenv
USER=USER
SHLUL=1
HOME=/ home/tc 
PAGER=less -EM
PS1 =user@Myhost : \W #
ENU=/home/tc/.ashrc
BACKUP=1
LOGNAME=tc
TERM=linux
PATH=/home/tc/. local/bin:/usr/ local/sbin:/usr/ local/bin:/apps/bin:/usr/sbin:/usr
/bin:/sbin:/bin
G_ FILENAME ENCOD ING= i so8859- 1
LANG=C
MANPAGER=less -isR
SHELL=/bin/sh
FLWM_ TITLEBAR COL0R=58:7D:AA
PWID=/home/tc
EDITOR=vi
user@Myhost : ~ #

实例2:显示环境变量PS1的值:

user@Myhost : ~ # prntenv PS1 
user@Myhost :\w #
user@Myhost : ~ #

这样的功能跟echo $PS1命令相似。


四、 set命令:显示与设置Shell变量信息

set命令的功能是用于显示与设置Shell变量信息,管理员也可以通过这个命令设置Shell终端特性,从而更好契合日常工作的需要。

语法格式:set [参数] [变量名]

常用参数:

-a: 显示已修改的变量

-b: 使被中止的后台程序立刻回报执行状态

-e: 若指令传回值不等于0则立即退出

-f : 取消使用通配符

-h: 自动记录函数的所在位置

-k :指令所给的参数都会被视为此指令的环境变量

-l  :记录for循环的变量名称

-m:使用监视模式

-n :只读取命令而不实际执行

-p :使用优先顺序模式

-t  :执行完指令后即退出

-u :遇到未定义的变量时报错

不加参数时,set命令显示当前shell的所有本地设置的Shell变量,否则设置shell变量

实例:

user@Myhost :~ # set | more
 


五、unset命令:删除已定义的shell变量(包括环境变量)和shell函数

unset为shell内建指令,功能是删除已定义的shell变量(包括环境变量)和shell函数。

unset命令不能够删除具有只读属性的shell变量和环境变量。

语法格式:unset [参数]

常用参数:

-f :仅删除函数

-v:仅删除变量

实例:

创建变量VAR1并初始化其值“test”,

然后我们用echo $VAR1命令显示变量VAR1的值,这时VAR1的值可以正常显示。

接着我们用unset -v VAR1命令删除变量VAR1,

最后我们再用echo $VAR1 命令显示变量VAR1的值时,就没有值显示了。

user@Myhost : ~ # VAR1="test"
user@Myhost : ~ # echo $VAR1
test
user@Myhost : ~ # unset -v VAR 1
user@Myhost : ~ # echo $VAR1

user@Myhost : ~ #

六、 export命令:显示或将变量提升成环境变量

export命令的功能是用于将变量提升成环境变量,亦可将Shell函数输出为环境变量。

通常,用户个人创建出的变量只能在自己账户下使用,其他用户是无法看到的。

若想让每个用户都能看到并有权利去使用变量值的话,则需要使用export命令进行提升操作。

语法格式:export [参数] [变量]

常用参数:

-f :设置函数名称

-n :删除指定变量

-o :创建JSON文件路径

-p :显示所有环境变量

-s :设置文件来源

实例1:显示所有环境变量

user@Myhost : ~ # export -p

export BACRUP='1'
export EDITOR='vi'
export ENU='/home/tc/.ashrc'
export FILEMGR
export FLUM TITLEBAR_ COLOR='58:7D :AA’
export G_ FILENAME ENCODING='iso8859-1'
export HOME='/home/tc'
export LANG= '0'
export LC_ALL
export LD_LIBRARY_PATH
export LOGNAME='tc'
export MANPAGER='less -isR'
export PAGER='less - EM '
export PATH='/home/tc/.local/bin:/usr/local/sbin:/usr/local/bin:/apps/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PS1='user@Myhost : \W # '
export PWD= '/home/tc'
export SHELL='/bin/sh'
export SHLVL='1'
export TERM='linux'
export USER= 'USER'
export VAR1
export _= 'clear'
export ignoreeof
user@Myhost : ~ # 

实例2:定义一个变量VAR1,初始值为"123"并提升成环境变量:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/93401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计 基于SSM的垃圾分类管理系统(以医疗垃圾为例)的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

《发现的乐趣》作者费曼(读书笔记)

目录 一、书简介 二、作者理查德•费曼 费曼式思维 教育与传承 三、个人思考 四、笔记 科学家眼中的花之美 关于偏科 父亲教育我的方式 知道一个概念和真正懂得这个概念有很大区别 我没有义务去成全别人对我的期望 诺贝尔奖——够格吗? 探究世界的游戏规…

2023年汉字小达人市级比赛在线模拟题来了,四种练习助力好成绩

2023年第十届汉字小达人比赛区级自由报名活动已于9月30日结束,尽管最终晋级市级比赛的名单还需要在11月初发布(有一些学校的校级选拔还没结束),但是许多小朋友已经开始准备市级比赛了。 根据往年的经验,实际比赛也是在…

接口测试入门实践

简单接口搭建(表单/REST) 五步教会你写接口 首先要安装flask包: pip install flask 从flask中导入Flask类和request对象: from flask import Flask, request从当前模块实例化出一个Flask实例:appFlask(__name__)编写一个函数来处理请求 从请求对象中获取数据:arequest.values.…

红黑树(有图解)

目录 介绍 概念 性质 模拟实现 结点定义 插入 保证平衡的原因 一般情况 特殊情况(uncle为黑) uncle不存在 旋转方式 右旋 迭代器 -- 代码 介绍 概念 红黑树是一种自平衡的二叉搜索树 它是在每个节点上引入额外的颜色信息,通过对任何一条从根到叶子的路径…

基于Dijkstra、A*和动态规划的移动机器人路径规划(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

优先级队列的模拟实现

目录 1. 优先级队列的概念 1.1堆的概念 1.2堆的性质 1.3堆的存储方式 2. 堆的创建 2.1堆的创建代码解析 2.2建堆的时间复杂度 2.3堆的插入 2.4 堆的删除 2.5常见习题 1. 优先级队列的概念 队列是一种先进先出 (FIFO) 的数据结构 ,但有些情况下, 操作的数…

Windows下载AOSP

关于repo repo只是谷歌做的,方便下载安卓源码的工具,本质上是对下载清单进行批量处理,然后使用git克隆。 在windows上下载源码只需要自己处理即可。 具体做法 首先使用git克隆安卓源码清单 git clone https://mirrors.tuna.tsinghua.edu.…

C# 画参数可调调幅波

参阅此, 使用VC输出调幅波的数值和波形_c如何显示下位机传输过来的频谱信号 csdn_bcbobo21cn的博客-CSDN博客 用winform做一下; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Dra…

【计算机网络】HTTP协议详解(举例解释,超级详细)

文章目录 一、HTTP协议简单介绍 1、1 什么是HTTP协议 1、2 再次理解“协议” 二、HTTP请求 2、1 HTTP的工作过程 2、1、1 demo代码 2、2 URL 介绍 2、2、1 urlencode 和 urldecode 2、3 HTTP 请求格式 三、HTTP响应 3、1 响应demo 3、2 HTTP 响应格式 四、HTTP 请求和响应中的…

【小尘送书-第六期】《巧用ChatGPT轻松玩转新媒体运营》AI赋能运营全流程,帮你弯道超车、轻松攀登运营之巅

大家好,我是小尘,欢迎你的关注!大家可以一起交流学习!欢迎大家在CSDN后台私信我!一起讨论学习,讨论如何找到满意的工作! 👨‍💻博主主页:小尘要自信 &#x1…

游戏逆向中的 NoClip 手段和安全应对方式

文章目录 墙壁边界寻找碰撞 NoClip 是一种典型的黑客行为,允许你穿过墙壁,所以 NoClip 又可以认为是避免碰撞体积的行为 墙壁边界 游戏中设置了碰撞体作为墙壁边界,是 玩家对象 和墙壁发生了碰撞,而不是 相机 玩家对象有他的 X…

8、Nacos服务注册服务端源码分析(七)

本文收录于专栏 Nacos 中 。 文章目录 前言确定前端路由CatalogController.listDetail()ServiceManager总结 前言 前文我们分析了Nacos中客户端注册时数据分发的设计链路,本文根据Nacos前端页面请求,看下前端页面中的服务列表的数据源于哪里。 确定前端…

【数据结构】红黑树(C++实现)

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【数据…

类加载机制

类加载运行全过程 当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到 JVM。 public class Math {public static final int initData 666;public static User user new User();public int compute() { //一个方法对应一块栈帧内…

Docker部署Nginx-常用命令

1.拉取 docker pull nginx 2. 查看镜像 docker images 3.保存镜像 docker save -o nginx.tar nginx:latest 4.删除镜像 docker rmi nginx:latest 5. 加载镜像 docker load -i nginx.tar 6. 运行Nginx docker run -d --name nginx -p 80:80 nginx 7.停掉Nginx容器 docker stop n…

Blender 导出 fbx 到虚幻引擎中丢失材质!!!(使用Blender导出内嵌材质的fbx即可解决)

目录 0 引言1 Blender导出内嵌纹理的fbx模型 0 引言 我在Blender处理了一些fbx模型后再次导出到UE中就经常出现,材质空白的情况(如下图所示),今天终于找到问题原因,记录下来,让大家避免踩坑。 其实原因很简…

弧度、圆弧上的点、圆的半径(r)、弧长(s)之间的关系

要计算弧度和圆弧上的点,需要知道以下几个要素: 圆的半径(r):即圆的中心到圆周上任意一点的距离。 弧长(s):从圆周上的一个点到另一个点所经过的弧长。 弧度(θ&#x…

【chainlit】使用chainlit部署chatgpt

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

HCQ1-1300-D【高速输入】

因为我的PLC固件比较旧。所以有些限制。【比如:编译不报错,下载PLC程序就报故障】我的PLC的高速输入类型只能是【hsi_ref】 所以,程序添加的高速输入模块只能是【1.0.1.0】版本 如果固件版本低,看下固件能支持的类型。选错的话&am…