Linux中shell的变量介绍

发布时间:2020-06-24 16:20:39

来源:亿速云

阅读:112

作者:元一

这期内容当中的小编将会给大家带来有关Linux中shell的变量介绍,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

我们知道shell里面有许多变量,比如我们经常会用到的PATH变量,它的作用就是,它的作用是设置可执行文件的目录,这样输入命令的时候就不用使用绝对路径了。除此之外,shell还有许多其他的变量。今天,来和大家讨论下shell变量。

分类

我们知道,php里面有局部变量和全局变量的区分,shell里面和php非常类型,有环境变量、普通变量。环境变量一般用于定义shell的运行环境,而普通变量则经常用于编写shell脚本中。

环境变量和普通变量的区别是和php的变量非常类似:区别都是使用范围的不同,shell的环境变量可以在当前shell以及衍生的shell的使用,而普通变量只能在当前shell使用。环境变量通常使用大写,普通变量通常使用小写。

定义变量

定义时,变量名不加美元符号($,PHP语言中变量需要),如:your_name="runoob.com"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

中间不能有空格,可以使用下划线(_)。

不能使用标点符号。

不能使用bash里的关键字(可用help命令查看保留关键字)。

环境变量

查看当前所有的环境变量,使用env(environment)命令即可# env

XDG_SESSION_ID=38135

HOSTNAME=iz8vb626ci0aehwsivxaydz

TERM=xterm

SHELL=/bin/bash

HISTSIZE=1000

SSH_CLIENT=114.106.186.229 31955 22

QTDIR=/usr/lib64/qt-3.3

……

另外还可以用set命令来查看,但是该命令会列出所有环境变量以及普通变量。一般的,环境变量都使用大写的字母来表示。

设置及取消环境变量

用户自定义设置环境变量的方式如下export 变量名=变量值

如想取消环境变量,则可以使用unset命令来完成unset 变量名

下面来演示一下:# export HOBBY=basketball

# env | grep HOBBY

HOBBY=basketball

# unset HOBBY

# env | grep HOBBY

变量的打印与设置

linux下有一个echo命令,使用方法和php是一样的,都是用来打印一段文本。# echo hello,world

hello,world

# echo -e "$PWD\n$PATH"

/root

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

变量的设置规则,变量名=变量内容注意"="两边都不能有空格

变量名称只能是字母和数字,另外首个字符不能是数字

变量内容若有空格,需要使用引号(单引号、双引号)将变量内容阔起来,如name="lebron james"。双引号里可以解析变量。

若有特殊字符,可以使用\来转义,如enter、'、”等特殊字符

如想使用命令结果作为变量内容,可以使用$(命令)或命令;

若想扩展变量内容,可以使用"{$变量}累加内容"

array

和php一样,shell变量也有数组类型。数组的定义语法如下:变量名=(val1 val2 ... valn);

arr=(paul james durant)

打印数组的长度echo ${#arr[@]}

打印数组元素的长度echo ${#arr[数组下标]}

打印数组的部分元素 ${lnmp[@]:n1:n2} n1表示开始,n2表示长度# 打印所有元素

# echo ${lnmp[@]}

linux nginx mysql php

# echo ${lnmp[@]:0}

linux nginx mysql php

# 打印从第二个元素开始的所有值

# echo ${lnmp[@]:1}

nginx mysql php

# 打印第一个值和第二个值

# echo ${lnmp[@]:0:2}

linux nginx

# 打印第二个值和第三个值

# echo ${lnmp[@]:1:2}

nginx mysql

打印数组元素语法如下echo ${arr[元素下标]}

# echo ${arr[0]}

paul

# echo ${arr[1]}

james

打印数组所有的元素echo ${arr[@]}

数组的赋值、替换、删除#追加元素

# lnmp[${#lnmp[@]}]=apache

# echo ${lnmp[@]}

linux nginx mysql php apache

# 修改元素

# lnmp[0]=l

# echo ${lnmp[@]}

linux nginx mysql php

# 删除元素

unset lnmp[0]

unset lnmp[1]

unset lnmp

上述就是小编为大家分享的Linux中shell的变量介绍了,如果您也有类似的疑惑,不妨碍参照上述分析进行理解。如果想了解更多相关内容,请关注亿速云行业资讯。

linux下变量名长度,Linux中shell的变量介绍相关推荐

  1. 在MATLAB 中st_1是变量名,在Delphi中,根据变量标识符命名规则,st80不能用一个变量命名。...

    在Delphi中,根据变量标识符命名规则,"st80"不能用一个变量命名. 更多相关问题 [单选,A型题] 胸痹表现为"心中痞,留气结在胸,胸满,胁下逆抢心", ...

  2. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行

    一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...

  3. linux 查看进程变量,Linux下查看进程(程序)启动时的环境变量

    Linux下查看进程(程序)启动时的环境变量 Linux的pargs ==================================== 今天又遇到一个老问题: 同事遇到了sqlplus &qu ...

  4. linux脚本查看系统内存,二个linux下查看内存使用情况的shell脚本()

    摘要 腾兴网为您分享:二个linux下查看内存使用情况的shell脚本(),政务易,悦作业,优化大师,王者荣耀等软件知识,以及单向历app,优路教育app,kimoji,开关电源设计软件,皮皮高清影视 ...

  5. linux 下重名名文件

    linux 下重名名文件 最经在使用linux的时候,用到重名的功能,在网上找了一下,找到一下方法: 使用mv命令重名名: 原理:使用 mv 移动文件的功能,见当前文件以要修改的名字移动到当前文件夹, ...

  6. linux下简单的批处理文件,LINUX下SHELL批处理(SSH批处理命令写法)

    Linux下的SSH类似于windows下的DOS,算是一种便捷版的远程桌面系统,可以让我们直接远程管理LINUX服务器,DOS下有批处理命令,LINUX的SHELL也有远程SSH批处理命令,SSH批 ...

  7. linux下扩展名为sh的安装程序文件如何运行?

    linux下扩展名为sh的安装程序文件如何运行? 扩展名为sh到文件是什么东东? 如何运行扩展名为sh的安装程序? 扩展名为sh到文件是什么东东?   是linux系统下的脚本文件,很多linux下的 ...

  8. Linux下各文件夹的结构说明及用途介绍(转载)

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  9. Linux 下各文件夹的结构说明及用途介绍

    点击上方公众号,可快速关注) 来源:小宁哥 www.cnblogs.com/xningge/p/8331631.html linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /d ...

最新文章

  1. ssl java 客户端_Java SSL生成客户端和服务端crt文件
  2. 何恺明一作论文 MAE 已有人复现!PyTorch 版!(附链接)
  3. Shell-通过shell启动Java类中的main方法 + 通过Shell启动jar包
  4. .Net Validator验证框架 [ .Net | Validator Framework | Attribute ]
  5. 20.校准相机——纯粹的方式,简单的方式,多平面校准_4
  6. 请允许我像亲人一样去爱你
  7. 虚拟机中标麒麟操作系统gcc安装
  8. PCB学习笔记——原理图编译与检查
  9. 【转】我是一个INFP者
  10. 怎么退出自适应巡航_定速巡航与自适应定速巡航到底有什么不同?
  11. HDU 6148 - Valley Numer(数位DP)
  12. Xrm.Utility.openEntityForm的使用
  13. android 感应器
  14. 【React】React介绍环境搭建
  15. 护网HVV(蓝队)小白必知必会
  16. 3dmax入门到精通
  17. 进入Recovery模式方法
  18. 声网Agora Lipsync技术剖析:通过实时语音驱动人像模拟真人说话
  19. 大连理工大学计算机科学与技术考研科目,2021年大连理工大学计算机科学与技术(081200)考研专业目录_硕士研究生考试范围 - 学途吧...
  20. B站狂神 JavaWeb 1-6

热门文章

  1. Git 切换提交历史节点
  2. Git 新建仓库推送远程技巧
  3. 企业级实战02_SpringMVC整合ActiveMQ 实战需求
  4. vuex从安装到使用的教程
  5. 【算法】合并两个有序数组【LeetCode】
  6. Android 控件 - TextView
  7. 在vm中安装linux虚拟机,如何在vm虚拟机中安装linux
  8. php写linux应用程序,Linux应用程序使用写文件调试程序的方法
  9. Python 线程优先队列 PriorityQueue - Python零基础入门教程
  10. python datetime.datetime 当前_关于datetime:如何让python显示当前时间(东部)