美文网首页
Shell 变量

Shell 变量

作者: tafanfly | 来源:发表于2019-07-30 16:05 被阅读0次

变量命名

shell命名规则如下:

  • 命名只能用英文字母,数字和下划线,且首字符不能以数字开头
  • 命名不能中间空格
  • 命名不可使用标点符号
  • 命名不含bash的关键字

例如下面的name='LiLei'name就是一个变量:

#!/bin/bash

name='LiLei'
echo $name

#sh test.sh
LiLei

注意变量名和==和赋值之间不能有空格, 否则会报错:
(1)name ='LiLei', 左边有空格, 脚本会报错 test.sh: line 2: name: command not found
(2)name= 'LiLei', 右边有空格, 脚本会报错 test.sh: line 2: LiLei: command not found

变量使用

使用变量名只需要在变量名前面加$符号, 而{}大括号可用可不同,主要是用来界定变量。
注意:shell变量不需要先定义后使用,如果对一个没有定义的变量取值,则值为空字符串

#!/bin/bash
name='LiLei'

echo $name
echo ${name}
echo "My name is ${name}Lei"
echo "My name is $nameLei"

#sh test.sh
LiLei
LiLei
My name is LiLeiLei
My name is

重定义变量

已定义的变量,可以被重新定义。

#!/bin/bash

name='LiLei'
echo $name
name='ZhangSan'
echo ${name}

#sh test.sh
LiLei
ZhangSan

只读变量

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变, 否则报错。

#!/bin/bash

name='LiLei'
echo $name
readonly name
name='ZhangSan'
echo ${name}

#sh test.sh
LiLei
test.sh: line 6: name: readonly variable

删除变量

使用 unset 命令可以删除变量, 输出的被删除变量为空。

#!/bin/bash

name='LiLei'
echo $name
unset name
echo ${name}

#sh test.sh
LiLei

注意:只读变量不可被删除

#!/bin/bash

name='LiLei'
readonly name
unset name
echo ${name}

#sh test.sh
test.sh: line 5: unset: name: cannot unset: readonly variable
LiLei

特殊变量

特殊变量在后面的shell编写过程中广泛应用

变量 含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。

变量类型

运行shell时,会同时存在三种变量:

  • 局部变量: 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  • 环境变量: 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  • shell变量: shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

相关文章

  • shell基础在工作中的应用

    shell编程基础:1. shell变量:环境变量、特殊变量、用户自定义变量2. shell输入输出3 shell...

  • Linux Shell:基础知识和Shell变量

    摘要:Linux,Shell 整理Shell内容要点: Shell基础知识 Shell变量的类型 Shell变量赋...

  • Shell常用命令(md格式方便阅读和复制粘贴)

    Shell Shell中的变量 系统变量 自定义变量 自定义变量规则 Shell特殊变量 运算符 条件判断 基本语...

  • shell第11章shell脚本

    什么是shell? Bash shell: 什么是shell脚本? 变量的介绍: 普通变量介绍: 环境变量介绍: ...

  • shell变量详解

    本文转载自Hello,Barry的shell变量详解1 shell变量基础shell变量是一种很“弱”的变量,默认...

  • linux shell中常见的变量含义解释

    linux shell中常见变量含义解释:变量说明:$$Shell本身的PID(ProcessID)$!Shell...

  • Shell特殊变量

    Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数 特殊变量列表 变量 含...

  • Shell变量

    Shell 变量 变量的分类 本地变量 全局变量 shell 内置变量 本地变量 本地变量就是:在当前系统的某个环...

  • bash环境变量

    环境变量是全局变量 自定义变量是局部变量 bash:可以进入当前shell的子shell(当前shell指的是当前...

  • shell

    shell变量 变量类型:局部变量局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程...

网友评论

      本文标题:Shell 变量

      本文链接:https://www.haomeiwen.com/subject/rfwdkctx.html