Linux操作系统笔记 | 您所在的位置:网站首页 › omc系统变量可分为 › Linux操作系统笔记 |
目录
一、Shell变量的基本概念(一)创建Shell变量(二)变量引导符($)(三)只读变量(readonly 命令)(四)查看变量(set 命令)(五)清除变量(unset 命令)
二、Shell变量的分类(一)环境变量(二)系统变量(三)用户自定义变量
三、Shell的引用符(一)双引号和单引号(二)反引号(三)花括号
一、Shell变量的基本概念
Shell中的变量分为三种,分别是环境变量(标准变量)、系统变量以及用户自定义变量(局部变量),环境变量的值可被用户修改,而系统变量是由系统预定义的,用户只能引用但不能修改,另外用户可自定义变量,即用户自定义变量,可以对变量进行创建、赋值以及引用等。 (一)创建Shell变量 用户可自定义变量,直接在变量名称后加上赋值符“=”即可,其中赋给变量的值可以是数值、变量、字符串或命令等等(若字符串中包含空格,则需用“”标注)。例如自定义一个变量名称为“value”,其值为1000,以及定义一个name变量,内容为字符串,如下: [yyx@yyx12 ~]$ value=1000 [yyx@yyx12 ~]$ name="this is my linux,hello world"如下,创建几个变量A、B、C、D,通过echo命令输出其值【echo命令用于输出字符串或变量】: [yyx@yyx12 ~]$ A=xiaoming [yyx@yyx12 ~]$ B="xiaoming" [yyx@yyx12 ~]$ C=hello world ... [yyx@yyx12 ~]$ D="hello world" [yyx@yyx12 ~]$ echo $A $B $C $D ...在Linux终端中输入命令,可看到变量A和变量B的输出结果是一样的,变量C中赋值的字符串中含有空格,但没有通过双引号包含,所以报错,如下: 例如通过echo命令输出刚刚创建的value变量的值,如下: [yyx@yyx12 ~]$ echo $value在Linux终端中输入命令: 在Linux终端中输入命令: 如下创建一个变量A并赋予其值,将其设为只读变量,然后再修改该变量: [yyx@yyx12 ~]$ A="This is my school" [yyx@yyx12 ~]$ readonly A [yyx@yyx12 ~]$ A="This is his school"在Linux终端中输入命令,发现会报错: 如下我们创建一个变量如何通过set命令查看该变量: [yyx@yyx12 ~]$ A=1111111 [yyx@yyx12 ~]$ set在Linux终端中输入命令,可看到刚刚创建的变量: 例如创建一个变量后通过echo命令输出该变量,然后在通过unset命令清除后再次输出该变量: [yyx@yyx12 ~]$ words="Linux is an operating system" [yyx@yyx12 ~]$ echo $words ... [yyx@yyx12 ~]$ unset words [yyx@yyx12 ~]$ echo $words ...在Linux终端中输入命令,可以看到执行unset命令后的words变量为空: 环境变量都被存放在/etc/profile文件中,如下通过cat命令查看/etc目录下的profile文件: [yyx@yyx12 ~]$ cat /etc/profile在Linux终端中输入命令: 通过echo命令查看$HOME变量,如下: [yyx@yyx12 ~]$ echo $HOME在Linux终端中输入命令: 通过echo命令输出该变量,如下: [yyx@yyx12 ~]$ echo $PATH在Linux终端中输入命令: 这里未能理解的小伙伴,可以看之前的文章,其中有讲述到相关的目录知识: Section 11 Linux操作系统简介 通过echo命令输出该变量,如下: [yyx@yyx12 ~]$ echo $TERM在Linux终端中输入命令,可看到xterm-256color,即支持启用256色的Xterm: 通过echo命令输出该变量,如下: [yyx@yyx12 ~]$ echo $IFS在Linux终端中输入命令,该变量的值通常为空: 通过echo命令输出该变量,如下: [yyx@yyx12 ~]$ echo $SHELL在Linux终端中输入命令: 通过echo命令输出该变量,如下: [yyx@yyx12 ~]$ echo $PS1在Linux终端中输入命令: Shell中的系统变量是系统定义并赋予初值的,用户只能引用但不能修改其值,常用的Shell系统变量如下表: 系统变量名称作用$0当前Shell脚本的名称,对应于命令行上输入的脚本名$1,$2,……,$9分别表示命令行上第1-9个命令行参数$#命令行上的参数个数,不包括$0$*命令行上的所有参数$@同上$$当前进程的进程号$?上一条命令的退出状态$!最后一个后台进程的进程号 (三)用户自定义变量如何自定义变量在刚刚Shell变量的基本概念中已经讲过,这里不再累述。 在Unix/Linux操作系统中,我们规定允许使用未经定义和赋值的变量,当通过$引用这些变量时,它们的值为空。例如直接通过echo命令输出一个未创建的变量filename的值(并未创建filename这个变量),如下: [yyx@yyx12 ~]$ echo $filename在Linux终端中输入命令,可看到空了一行,显示它是空的:
而单引号不一样,在单引号中其他字符的原有特殊含义都被屏蔽了,它们显示的是这些符号的基本含义,如下: [yyx@yyx12 ~]$ number=12345 [yyx@yyx12 ~]$ A="He is $number" [yyx@yyx12 ~]$ B='He is $number' [yyx@yyx12 ~]$ echo $A ... [yyx@yyx12 ~]$ echo $B ...在Linux终端中输入命令,可看到B变量值中的单引号内的$number无效,它通过echo命令显示的是原本的内容,其中的字符失去了其特殊含义: 如下,pwd命令被包含在反引号内: [yyx@yyx12 ~]$ A=`pwd` [yyx@yyx12 ~]$ echo "The current working directory name is:$A"在Linux终端中输入命令: 花括号可以使变量与其后跟的其他字符隔开,如下由于要将变量A与后面字符串拼接起来,如果直接$Aer会直接输出空值(由于变量Aer未定义,取的是变量Aer的值,而不是变量A的值),所以通过给变量加上花括号,从而使变量与后面的字符串分隔开: [yyx@yyx12 ~]$ A="he is a teach" [yyx@yyx12 ~]$ echo "${A}er" ... [yyx@yyx12 ~]$ echo "$Aer" ...在Linux终端中输入命令: |
CopyRight 2018-2019 实验室设备网 版权所有 |