`

Shell变量:Shell变量的定义、删除变量、只读变量、变量类型

阅读更多
Shell支持自定义变量。
定义变量

定义变量时,变量名不加美元符号($),如:
variableName="value"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。

变量定义举例:
myUrl="http://see.xidian.edu.cn/cpp/linux/"
myNum=100



使用变量

使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:
your_name="mozhiyan"
echo $your_name
echo ${your_name}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
for skill in Ada Coffe Action Java 
do
    echo "I am good at ${skill}Script"
done

如果不给skill变量加花括号,写成echo "I am good at $skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。

推荐给所有变量加上花括号,这是个好的编程习惯。


重新定义变量

已定义的变量,可以被重新定义,如:
myUrl="http://see.xidian.edu.cn/cpp/linux/"
echo ${myUrl}
myUrl="http://see.xidian.edu.cn/cpp/shell/"
echo ${myUrl}

这样写是合法的,但注意,第二次赋值的时候不能写 $myUrl="http://see.xidian.edu.cn/cpp/shell/",使用变量的时候才加美元符($)。
只读变量

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

下面的例子尝试更改只读变量,结果报错:
#!/bin/bash
myUrl="http://see.xidian.edu.cn/cpp/shell/"
readonly myUrl
myUrl="http://see.xidian.edu.cn/cpp/danpianji/"
运行脚本,结果如下:
/bin/sh: NAME: This variable is read only.


删除变量

使用 unset 命令可以删除变量。语法:
unset variable_name
变量被删除后不能再次使用;unset 命令不能删除只读变量。

举个例子:
#!/bin/sh
myUrl="http://see.xidian.edu.cn/cpp/u/xitong/"
unset myUrl
echo $myUrl

上面的脚本没有任何输出。
变量类型

运行shell时,会同时存在三种变量:
1) 局部变量

局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量

所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量

shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
分享到:
评论

相关推荐

    linux超级基础系列——shell变量(本地变量和环境变量

    要显示所有本地定义的shell变量,可以使用不带参数的 `set` 命令。此外,用户还可以测试变量是否已经被设置或者初始化,如果没有,可以使用特定的值来替代。 环境变量与本地变量不同,它们在用户的整个会话中都是...

    linux超级基础系列-shell变量(本地变量和环境变量)

    Shell变量是Shell编程的基础之一,它们能够存储各种类型的数据,如路径名、文件名或简单的数值等。Shell会将所有设置视为文本字符串来处理。 #### 二、本地变量 ##### 1. 定义与赋值 本地变量是在某个特定的Shell...

    深入浅出的学习变量(局部、全局、系统、位置、只读变量… set 命令、export 命令、以及如何设置环境变量!)

    变量的赋值:①、静态语言 或 强类型②、动态语言 或 弱类型变量名命名规则? ==bash 中 变量的种类:==①、局部变量:★ 如何使用局部变量?★ 如何证明局部变量的生效范围?①、首先 使用 set 命令查看所有变量:...

    arm环境变量的设置

    # 尝试删除或修改只读变量 unset TEST # 会提示错误 TEST="New" # 也会提示错误 ``` #### 四、ARM环境变量设置注意事项 在ARM架构下,环境变量的设置与其他架构下的Linux系统并无本质区别。但是,由于ARM平台的...

    Linux下如何设置环境变量.docx

    * 使用 readonly 命令设置只读变量:$ readonly TEMP_KEVIN 6. 环境变量的应用 环境变量广泛应用于各种应用程序和系统配置中。例如,Java applications 可以使用环境变量来配置 JVM 的参数,Apache 服务器可以使用...

    6 shell变量1

    以下是关于Shell变量的一些关键知识点: 1. **变量命名规则**: - 变量名称允许由字母、数字和下划线组成,但不能以数字开头。 - 变量的默认类型是字符串,这意味着即使赋值为数字,它也会被视为文本。 - 赋值时...

    Linux 环境变量设置

    - 尝试修改或删除只读环境变量将导致错误消息。 #### 三、环境变量的持久化设置 1. **在`/etc/profile`中设置环境变量:** - 编辑 `/etc/profile` 文件,并添加或修改环境变量的定义,例如设置 `CLASSPATH`: ...

    工作笔记 shell 变量和运算符

    只读变量一旦被设置后就不能再被改变。 ##### 局部变量 局部变量只能在当前 shell 进程中使用,不能被子进程继承。 ```sh #LOCALTEST="test" #echo${LOCALTEST} test #echo$LOCALTEST test ``` #### 变量扩展 变量...

    shell变量学习

    本文主要探讨了Shell变量的使用、赋值、显示、删除以及一些特殊的操作。 1. **本地变量** 本地变量仅在当前Shell会话中有效,不会影响其他独立的Shell实例。定义本地变量的格式通常是`NAME=value1`,如`HOME=/home...

    Linux设置和查看环境变量的方法.docx

    5. 使用 readonly 命令设置只读变量:例如,使用命令 `$ readonly TEST`可以将环境变量 TEST 设为只读。 环境变量的设置位于 `/etc/profile` 文件中,如果需要增加新的环境变量可以添加相应的行,例如 `export path...

    linux 系统管理篇--环境变量

    4. **使用`set`命令查看Shell变量:** - `set`命令可以用来查看当前Shell会话中的所有变量(包括环境变量和其他内部变量)。例如: ```bash $ set BASH=/bin/bash BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3...

    LINUX操作系统基础shell变量的应用二PPT教案学习.pptx

    在Linux操作系统中,Shell变量是控制Shell行为的关键元素。它们存储数据,并且可以在脚本或命令行中被引用。以下是对Shell变量应用的详细讲解: 首先,获取变量的值可以通过在命令行中使用`echo $变量名`或者`echo ...

    Linux的shell脚本

    使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。 5. 删除变量 使用 unset 命令可以删除变量。语法:unset variable_name 变量被删除后不能再次使用。unset 命令不能删除只读变量。 6. ...

    shell学习,第一章

    - 只读变量:使用`readonly`关键字,如`readonly name`。 - 删除变量:使用`unset`命令,如`unset name`。 - 变量类型:包括本地变量、局部变量、环境变量和位置变量。 - 本地变量:在整个bash进程中可用。 - ...

    shell脚本学习手册

    - `unset`命令用于删除变量,但无法删除只读变量。 5. 变量类型 - 局部变量:仅在当前脚本内有效。 - 环境变量:所有程序均可访问,影响范围广。 - Shell变量:特定于Shell的变量,有特殊用途。 6. Shell字符...

    shell浅谈之一 变量和引用

    在Linux系统中,Shell脚本是一种强大的自动化工具,它的核心组成部分就是...理解变量的类型、赋值规则、位置参数以及内部变量的使用,能帮助我们编写更高效、更具可读性的shell脚本,更好地利用Linux系统的自动化能力。

    LINUX shell编程.doc

    - 设置只读变量:`readonly variable-name`。 - 查看只读变量:`readonly`。 2. **环境变量**: - 对所有用户进程有效,通常用于环境配置。 - 针对单个用户设置:`$HOME/.bash_profile` 或 `$HOME/.bashrc`。 ...

    Shell开发教程.docx

    Shell变量:Shell变量的定义、删除变量、只读变量、变量类型 **变量定义**: - `VAR_NAME=value` 定义一个变量。 - `VAR_NAME="some value"` 可以包含空格或其他特殊字符。 **删除变量**: - `unset VAR_NAME` ...

    shell你只需要懂这些

    - **删除变量**:使用 `unset` 命令可以删除变量,但 `unset` 不能用于删除只读变量。 #### 六、参数传递 在执行 Shell 脚本时,可以通过脚本参数的形式传递信息。这些参数在脚本中通常通过 `$1`, `$2`, ... 这样...

    shell入门学习笔记

    2.1 Shell中没有真正的常量,但可以创建只读变量,用`declare -r`定义,这样可以防止意外修改关键值。 2.2 变量分为: - 本地变量:仅在当前进程有效,如 `$i`。 - 环境变量:对所有进程可见,如 `$RANDOM`,生成0...

Global site tag (gtag.js) - Google Analytics