shell变量的分类及定义

『现学现忘』Shell变量 — 10、变量定义的规则和分类 文章目录1、定义变量的规则2、变量的分类 1、定义变量的规则 在定义变量时,有一些规则需要遵守 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是2name则是错误的。 在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。 变量用等号连接值,等号左右两侧不能有空格。 [root@localhost ~]# name = cangls -bash: name: command not found 变量的值如果有空格,需要使用单引号或双 阅读详情

shell变量的类型:

shell变量分环境变量(全局变量)和普通变量(局部变量)

环境变量亦称为全局变量,可以在建立它们的shell及其派生出来的任意子进程shell中使用;环境变量又分为自定义环境变量和Bash内置的环境变量。

普通变量亦称为局部变量,只能在创建它们的shell函数或shell脚本中使用,一般由开发者用户创建。

环境变量的作用:一般用于定义shell的运行环境,保证shell命令的正确执行,Shell通过环境变量来确定登陆用户名,命令路径,终端类型,登陆目的等。

环境变量的创建:可以在命令行中设置创建,但用户退出命令行时这些变量值就会丢失,因此,若希望永久保存环境变量,可在用户家目录下的 .bash_profile 或者 .bashrc 文件中或全局配置 /etc/bashrc 或 /etc/profile 文件或 /etc/profile.d/ 中定义。将环境变量放在这些文件中,每次用户登陆时这些变量值都会被初始化一次。

一般,环境变量都为大写,使用export命令导出定义环境变量

内置的环境变量,如HOME, PATH, SHELL, UID,USER,HOSTNAME 等,都是在用户登陆之前就已经被/bin/login程序设置好了。

自定义的环境变量: 如果想要设置环境变量,就要在给变量赋值之后或设置变量时使用export命令。带-x选项的declare内置命令也可以完成同样的功能。(注意:输出变量时不要在变量名前加$)

自定义环境变量的设置方法:
<1> export 变量名=value

[root@localhost SHELL]# export NAME=nihao
[root@localhost SHELL]# env | grep NAME
HOSTNAME=localhost.localdomain
NAME=nihao    //设置成功,但是此种方式不能永久生效
USERNAME=root
LOGNAME=root
[root@localhost SHELL]# 

要想让其生效必须将其放在用户的环境变量( .bashrc  或  .bash_profile )或者全局的环境变量( /etc/profile 或 /etc/bashrc 或 /etc/profile.d )

<2> 变量名=value : export 变量名

<3> declare -x 变量名=value (很少用)

对环境变量的操作:

<1>用echo或者printf打印环境变量(注意:输出环境变量时,要加$符号)

[root@localhost SHELL]# echo $USER
root
[root@localhost SHELL]# printf $HOME
/root[root@localhost SHELL]# printf "$HOME\n"
/root
[root@localhost SHELL]# 

$HOME  用户登陆时进入的目录
$UID   当前用户的UID(用户标识)相当于 id-u
$PWD   当前工作目录的绝对路径名
$SEHLL  当前shell
$USER   当前用户

<2>用env(printenv) 或者set显示环境变量
一般不用set,set的显示比较乱

[root@localhost SHELL]# env
XDG_VTNR=1
XDG_SESSION_ID=1
DBUS_STARTER_ADDRESS=unix:abstract=/tmp/dbus-MQJKrUWfi8,guid=5a9152fe944f715e8f75d17d5868e73d
GPG_AGENT_INFO=/run/user/0/keyring-LQZGWn/gpg:0:1
VTE_VERSION=3406
XDG_MENU_PREFIX=gnome-
SHELL=/bin/bash
TERM=xterm-256color
WINDOWID=33554438
GNOME_KEYRING_CONTROL=/run/user/0/keyring-LQZGWn
QT_GRAPHICSSYSTEM_CHECKED=1
USER=root

<3>用unset消除本地变量或环境变量(unset 时不用加$符号)

[root@localhost SHELL]# export NAME=MMMMM    //设置环境变量
[root@localhost SHELL]# env | grep NAME      //查找环境变量NAME
NAME=MMMMM
USERNAME=root
LOGNAME=root
[root@localhost SHELL]# unset NAME          //删除环境变量
[root@localhost SHELL]# echo $NAME          //打印环境变量,没有输出,说明删除环境变量成功

[root@localhost SHELL]# 

普通变量的定义:

变量名=value

直接定义变量内容的方法;输出变量内容时会将变量内容里的变量或命令(要反引下)解析之后再输出,一般为简单连续的数字,字符串,路径名等,如果内容中有空格等特殊字符,则不能完整输出,需要改加双引号

[root@localhost SHELL]# d=123456
[root@localhost SHELL]# c="192.168.1.2-$d"
[root@localhost SHELL]# c=192.168.1.2-$d
[root@localhost SHELL]# echo $c
192.168.1.2-123456
[root@localhost SHELL]# 

//变量内容中有命令要反引下 反引符号为 ``
[root@localhost SHELL]# d=123456
[root@localhost SHELL]# c="192.168.1.2-$d"
[root@localhost SHELL]# c=192.168.1.2-$d
[root@localhost SHELL]# echo $c
192.168.1.2-123456
[root@localhost SHELL]# c=192.168.1.2-$`echo $d`
[root@localhost SHELL]# echo $c
192.168.1.2-$123456
[root@localhost SHELL]#

变量名=’value’

通过单引号定义变量;输出变量内容时单引号里面是什么就输出什么,即使内容中有变量和命令也会将它们原样输出。

变量名=”value”

通过双引号定义变量,输出变量时引号里的变量及命令(要反引下)会经过解析后才输出该变量的内容,而不是将引号中的变量或命令原样输出。

shell中变量名及变量内容的要求:

变量名 一般是由字母,数字,下划线组成。一般以字母或下划线开头,但是数字不可以。

变量名的输出:

$变量名表示变量输出,使用$变量名 或者 ${变量名} 是等同的。

[root@localhost SHELL]# a=192.168.1.2
[root@localhost SHELL]# echo $a
192.168.1.2
[root@localhost SHELL]# b='192.168.1.2'
[root@localhost SHELL]# echo $b
192.168.1.2
[root@localhost SHELL]# c="192.168.1.2"
[root@localhost SHELL]# echo $c
192.168.1.2
[root@localhost SHELL]# echo "a=$a"
a=192.168.1.2
[root@localhost SHELL]# echo "b=$b"
b=192.168.1.2
[root@localhost SHELL]# echo "c=${c}"
c=192.168.1.2
[root@localhost SHELL]# export NAME=MMMMM
[root@localhost SHELL]# echo "${NAME}"
MMMMM
[root@localhost SHELL]# 

连续普通字符串赋值给变量,不管是否使用了引号(单引号或双引号),内容是什么,就会打印出什么

但是当不是连续的普通字符串时:
[root@localhost SHELL]# a=192.168.1.2-$a
[root@localhost SHELL]# echo "a=$a"
a=192.168.1.2-192.168.1.2
[root@localhost SHELL]# b='192.168.1.2-$a'
[root@localhost SHELL]# echo "b=$b"
b=192.168.1.2-$a
[root@localhost SHELL]# c="192.168.1.2-$a"
[root@localhost SHELL]# echo "c=${c}"
c=192.168.1.2-192.168.1.2-192.168.1.2
[root@localhost SHELL]# echo "c=$c"
c=192.168.1.2-192.168.1.2-192.168.1.2
[root@localhost SHELL]# 

把命令的结果作为变量内容的定义方法

变量名=命令 //命令用反引号包裹
变量名=$(命令)

[root@localhost SHELL]# ddddd=`ls`
[root@localhost SHELL]# echo $ddddd
test1.sh test.sh UNIX.shell范例精解(第4版).pdf
[root@localhost SHELL]# ls
test1.sh  test.sh  UNIX.shell范例精解(第4版).pdf
[root@localhost SHELL]# e=$(ls)
[root@localhost SHELL]# echo $e
test1.sh test.sh UNIX.shell范例精解(第4版).pdf
[root@localhost SHELL]# 
07.shell之变量定义规则、变量叠加及变量分类 如果用echo直接跟ls那么只会输出ls,并不会执行ls这个命令。只有我们用反引号或者$()把ls括起来时命令才能正确引用系统命令。 Bash的变量: 用某个特定字符串代表不固定的内容就是变量 使用内存空间保存数据,保存的数据叫变量的值,名称叫变量名称,用$调用。 阅读详情

相关推荐

Shell基础— 变量定义的规则和分类

在定义变量时,有一些规则需要遵守变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是2name则是错误的。在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。变量用等号连接值,等号左右两侧不能有空格。变量的值如果有空格,需要使用单引号或双引号包括。"。其中双引号括起来的内容$、\和反引号都拥有特殊含义,而单引号括起来的内容都是普通字符。在变量的值中,可以使用“\”转义符。如果需要增加变量的值,那么可以进行变量值的叠加。...

测试-八戒 1603

shell(2) -- SHELL变量

SHELL变量入门 2. SHELL变量入门 2.1 1.变量特性 Shell是一种动态类型语言和弱类型语言,默认情况下,在bash Shell中不区分变量类型的,例如常见的变量类型为整数、字符串、小数等。 2.变量类型 变量分为两类: 环境变量(全局变量)和普通变量(局部变量)。 示例 #!/bin/bash # 定义变量x,并且赋值为123 x=123 # 变量x加1 let "x += 1" # 输出变量x的值 echo "x = $x" # 显示空行 echo # 替换x中的1为abc, 并且

weixin_43239001的博客 1130

Linux——shell变量

Shell变量 变量:变量是用来临时保存数据的,该数据是可以变化的数据。 什么时候定义变量? 如果某个内容需要多次使用,并且在代码中重复出现,那么可以用变量代表该内容。这样在修改内容的时候,仅仅需要修改变量的值。 在代码运作的过程中,可能会把某些命令的执行结果保存起来,后续代码需要使用这些结果,就可以直接使用这个变量。 1. 变量的定义 变量名=变量值 变量名:用来临时保存数据的 变量值:就是临时的可变化的数据 2. 变量的定义规则 变量名一般用字母、数字、下划线组成,且开头不能

weixin_62058803的博客 474

shell基础之变量(2):变量有哪些种类、怎么定义/赋值/取值、不同种类变量的作用域

> 对shell变量有一个系统性的了解 > 1. 变量的种类:局部、全局、环境变量 > 2. 变量的定义和操作:赋值、取值、取消变量 > 3. 特殊变量:位置参数、 $? > 4. 数组的定义和使用 > 5. 变量的作用域

hiliang521的博客 4233

王爽《汇编语言》课程设计2(不涉及软盘版本)

assume cs:code,ds:data,ss:stack stack segment db 128 dup (0) stack ends data segment db 256 dup (0) data ends code segment start: mov ax,stack mov ss,ax mov sp,128 ...

weixin_41944412的博客 1178

蚁群算法(Ant Colony Optimization,ACO)讲解+代码实现

通常情况下,较优的解对应的路径上的信息素会被加强,而较差解对应的信息素则会减少或蒸发。的化学物质,这种物质会在蚂蚁走过的路径上留下痕迹,后续的蚂蚁会根据这些信息素的浓度来选择路径,从而形成一条从蚁巢到食物源的。在求解TSP蚁群算法中,每只蚂蚁相互独立,用于构造不同的路线,蚂蚁之间通过信息素进行交流,合作求解。的过程,该路段经过的蚂蚁越多,信息素留下的就越多,浓度越高,更多的蚂蚁都会选择这个路段。需要注意的是,蚁群算法是一种。(6)计算每只蚂蚁的总距离:遍历每只蚂蚁的路线,累加经过的城市之间的距离。

m0_73804764的博客 1万+

shell的变量(环境变量,位置参数变量,预定义变量)

shell的变量(环境变量,位置参数变量,预定义变量)

m0_63026992的博客 641

ZYNQ学习:PL端DDR3 读写测试

DDR SDRAM 的最大特点是双沿触发,即在时钟的上升沿和下降沿都能进行数据采集和发送,同样的工作时钟, DDR SDRAM 的读写速度可以比传统的 SDRAM 快一倍。本次实验使用的 DDR3 芯片是南亚的 NT5CC256M16ER-EKI, NT5CC256M16ER-EKI 的 bank 位宽为 3,行位宽为 15,列位宽为 10,所以它的地址大小等于 2^3*2^15*2^10(即 2^28=256M),数据位宽为 16bit,所以容量大小为 256M*16bit,也就是 512MByte。

shuidiQAQ的博客 3031

Shell编程——Shell变量简介(变量定义与使用、作用域、特殊变量等)

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。

主要记录嵌入式学习与开发过程。 6993

高通QCOM Camera Pipeline 可视化工具:从XML到交互式图谱的工程实践

本文详细介绍了高通QCOM Camera Pipeline可视化工具的工程实践,旨在解决Camera驱动与算法工程师在解析复杂XML配置文件时的痛点。该工具能将静态的XML文件(如g_camx_usecase.xml)自动转换为交互式视觉图谱,通过分层布局算法清晰展示Pipeline、Node、Port和Link的拓扑关系,并支持悬停查看、拖动缩放等交互操作,极大提升了开发调试与架构理解的效率。

prometheus5watch的博客 554

CloudCompare如何进行二次开发?

CloudCompare源代码编译成功后,即可进行二次开发,可以通过修改源码或者制作插件实现二次开发。本文二次开发采用修改CloudCompare的源代码的方式,分别修改mainwindow.ui、mainwindow.h、mainwindow.cpp,实现扩展功能,克隆选中的点云。

【cacrle】的博客 5331

shell变量的分类:自定义变量,环境变量,位置变量的定义规则及使用详解

目录一. shell脚本的编写过程1.1 新建脚本文件1.2 添加可执行权限1.3 直接运行脚本文件二. 管道与重定向2.1 管道符号 |2.2 重定向操作shell 变量用户自定义变量echo ${VERSION}6.1特殊变量 一. shell脚本的编写过程 1.1 新建脚本文件 第一行#!/bin/bash 表示脚本声明,表示此行以后的语句通过/bin/bash程序来解析执行 1.2 添加可执行权限 chmod +x 脚本文件 1.3 直接运行脚本文件 脚本文件路径(绝对路径或者相对路

weixin_48192495的博客 4831

如何在 SAP BTP 上使用 Integration Suite 消费 S/4HANA Cloud API

SAP Integration Suite是一个集成平台即服务(iPaaS),允许开发人员顺利地将内部部署和基于云的应用程序和流程与SAP管理的工具和预构建内容进行集成。登录 SAP Business Technology Platform Cockpit,进入 integration suite:再点击 API management 进入 API Portal:或者直接从收藏夹里打开链接:https://304a49cetrial.integrationsuitetrial-apiportal.cfapp

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1697

linux83 shell脚本定义;变量定义;分类;四则运算 前章代码

cat /etc/shells /bin/bash /bin/nologin shell脚本写法、运行 写法 运行 chmod +x 1.sh /路径/1.sh ./1.shh bash -n 1.sh 检查语法 bash -x 1.sh 查看执行过程 rename rename 原文件名 更改文件名 范围 变量 本地变量 A=X 环境变量 export A env| grep ^A set 全局变量 /etc/profile 系统和每个用户的环境变量信息 /etc/bashrc 使用bash shell

czhc1140075663的博客 968

信号的反射(振铃、台阶、回勾、尖峰毛刺)

反射是怎么形成的 假设信号传输过程中,经过两个阻抗不同的区域,如下图所示。区域1阻抗为Z1,区域2阻抗为Z2。 在分界面处,电压必须是连续的,否则,在分界面处会产生无穷大的电场,这在真实世界中是不可能的。 同样,分界面两侧的电流必须是连续的,否则分界面处会产生无穷大的磁场。 因此: 根据欧姆定律,必然有: 显然如果Z1≠Z2的情况下,上面式子不可能同时成立。如何理解这一困境? 应该从 ...

sinat_15677011的博客 1万+

uniapp - [微信小程序 | 安卓苹果app] 详细实现接入天地图完整流程,提供显示地图、IP 属地定位 / 用户定位的城市名称、用户定位的经纬度超多功能(复制运行示例代码,详细注释及常见问题)

uni-app,微信小程序,安卓app,苹果app,App端,支付宝小程序,nvue,天地图,国家天地图api,接入使用天地图,uniApp小程序端接入天地图,uniapp安卓苹果app端接入天地图,微信小程序平台如何引入天地图,天地图Api使用教程,如何在uniapp里集成天地图,使用天地图获取当前定位,天地图api教程,天地图官方文档,天地图详细使用教程,Uniapp项目如何使用天地图,项目引入天地图配置及使用教程,使用天地图获取用户定位,天地图获取用户当前位置信息(经纬度),如何通过天地图拿到用户定位

🏆 前端领域优质创作者 1万+

linux变量符号生效规则,shell变量的分类:自定义变量,环境变量,位置变量的定义规则及使用详解...

shell变量的分类:自定义变量,环境变量,位置变量的定义规则及使用详解这篇文章对于学习这个知识点有较好的参考作用,需要了解这方面技术的可以斟酌学习一下。一. shell脚本的编写过程1.1 新建脚本文件第一行#!/bin/bash 表示脚本声明,表示此行以后的语句通过/bin/bash程序来解析执行1.2 添加可执行权限chmod x 脚本文件1.3 直接运行脚本文件脚本文件路径(绝对路径...

weixin_36192410的博客 343

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Shell基础之变量的命名规则、分类及自定义变量

目录 Bash 的变量和运算符 什么是变量 变量的分类 用户自定义变量 变量定义 变量调用 变量查看 变量删除 Bash 的变量和运算符 什么是变量 在定义变量时,有一些规则需要遵守: 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是“2name”则是错误的。 在 Bash 中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。 变量用等号连接值,等号左右两侧不能有空格。 变量的值如果有空格,需要使用单引号或双引号包括。 如:

baidu_41388533的博客 2600

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Shell编程(Shell作用+脚本书写方式+脚本执行方式+变量分类+变量配置文件+变量定义+Shell重要的位置变量+三种传参方式)

Shell是命令解释器,Linux默认是Shell是:bashShell分交互式与非交互式交互式:输入命令可以得到响应非交互式:通过脚本运行Shell命令,无需等待用户输入命令将基础命令写入到文件中的称为Shell脚本,文本中包含变量,判断语句,循环,数组等内容1、Shell脚本存放在固定目录2、Shell脚本开头需要写解释器,默认使用的是bash3、Shell脚本必须以.sh结尾4、Shell脚本中最好不用中文做注释5、Shell中成对的符号一次性书写完毕。

宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒。 766

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

linux(五)—shell脚本的交互式定义变量及变量的分类

1:自定义变量 如下图所示 2:交互式定义变量 语法:read 参数 "提示语:" 变量 例如:read -p "输入你们年龄:" AGE 参数使用案例:-p:定义提示用户的信息 -n:定义字符数(限制变量的长度) -s:不显示输出内容 -t:定...

xiaoqiang65的博客 1376

Shell脚本入门:环境变量和自定义变量

文章目录Shell变量:环境变量目标Shell变量的介绍变量类型系统环境变量介绍Shell的配置文件分类环境变量分类查看当前Shell系统环境变量查看Shell变量(系统环境变量+自定义变量+函数)常用系统环境变量小结Shell变量:自定义变量目标自定义变量介绍分类自定义局部变量介绍定义与使用变量删除自定义常量自定义全局变量父子Shell环境介绍自定义全局变量介绍自定义全局变量语法案例需求案例实现步骤案例演示结论小结 Shell变量:环境变量 目标 1、理解什么是系统环境变量? 2、掌握常用的系统环境变量都

m0_51340928的博客 2万+

02_SHELL编程之变量定义

typora-copy-images-to: pictures typora-root-url: ....\pictures 一、SHELL介绍 ㈠ 什么是shell脚本? ㈡ 什么时候用到脚本? ㈢ shell脚本能干啥? ㈣ 如何学习shell脚本? ㈤ 学习shell脚本的秘诀 ㈥ shell脚本的基本写法 ㈦ shell脚本的执行方法 二、变量的定义 1. 变量是什么? 2. 什么时候需要定义变量? 3.变量如何定义? .

baiduwenku112的博客 622

4. shell 自定义变量

shell 变量

2301_80967396的博客 851

shell的变量

顾名思义,变量就是程序设计语言中的一个可以变化的量,当然,可以变化的是变量的值。几 乎所有的程序设计语言中都有定义变量,并且其涵义也大同小异。从本质上讲,变量就是在程序中保存 用户数据的一块内存空间,而变量名就是这块内存空间的地址。在程序的执行过程中,保存数据的内存空间的内容可能会不断地发生变化,但是,代表内存地 址的变量名却保持不变。在命令行中定义:退出当前进程后该变量就失效,其他终端上无法使用该变量在文件中定义:永久生效当前用户生效的文件~/.bashrc 和 ~/.bash_profile。

2302_77791905的博客 994

Shell脚本-变量

存储变量值不是重要目的;调用变量值才是最终目的注意“变量名”与赋值号“=”中间没有空格# 定义变量name值为”Hi!name="Hi!# 使用echo打印出变量name值echo $name这是父shell和子shell的问题Shell脚本中的参数替换是一种强大的特性,**它允许你动态地修改变量的值,或者在变量未设置时提供一个默认值。**参数替换使用大括号{}和冒号这里的parameter是你想要替换的变量名,而word是当变量parameter未设置或为空时提供的默认值。如果parameter。

sq2048935747@163.com的博客 1251
上一篇: shell脚本开发规范
下一篇: shell的特殊重要内置变量
lm_123_456
博客等级 码龄11年 35粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值