- 浏览: 50385 次
- 性别:
文章分类
- 全部博客 (103)
- 一致性哈希算法 (1)
- 云计算 (2)
- Cassandra学习 (2)
- Java网络通信与笔记 (14)
- ZooKeeper学习 (1)
- HBase学习 (1)
- Sqoop学习 (1)
- Java网页开发之 (2)
- Java网络通信框架 (5)
- (memcached)分布式内存对象缓存系统 (1)
- Redis学习 (5)
- Shell学习 (14)
- Linux学习 (10)
- MySQL优化 (17)
- C++ (7)
- HTML5 (5)
- Android学习 (5)
- 网络 (2)
- Node.js (1)
- D3.js (1)
- R语言学习 (3)
- Spark (1)
- CAN协议 (2)
- 解决方案 (0)
最新评论
Shell支持自定义变量。
定义变量
定义变量时,变量名不加美元符号($),如:
variableName="value"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。
变量定义举例:
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:
如果不给skill变量加花括号,写成echo "I am good at $skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。
推荐给所有变量加上花括号,这是个好的编程习惯。
重新定义变量
已定义的变量,可以被重新定义,如:
这样写是合法的,但注意,第二次赋值的时候不能写 $myUrl="http://see.xidian.edu.cn/cpp/shell/",使用变量的时候才加美元符($)。
只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
下面的例子尝试更改只读变量,结果报错:
删除变量
使用 unset 命令可以删除变量。语法:
unset variable_name
变量被删除后不能再次使用;unset 命令不能删除只读变量。
举个例子:
上面的脚本没有任何输出。
变量类型
运行shell时,会同时存在三种变量:
1) 局部变量
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量
所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量
shell变量是由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的正常运行
发表评论
-
Shell文件包含
2015-09-05 14:20 0像其他语言一样,Shell 也可以包含外部脚本,将外部脚本的内 ... -
Shell输入输出重定向:Shell Here Document,/dev/null文件
2015-09-05 14:16 0Unix 命令默认从标准输 ... -
Shell函数参数
2015-09-05 14:10 0在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 ... -
Shell函数:Shell函数返回值、删除函数、在终端调用函数
2015-09-05 14:07 0函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰 ... -
Shell break和continue命令
2015-09-05 14:05 0在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像 ... -
Shell until循环
2015-09-05 14:03 0until 循环执行一系列命令直至条件为 true 时停止。u ... -
Shell while循环
2015-09-05 14:00 0while循环用于不断执行一系列命令,也用于从输入文件中读取数 ... -
Shell for循环
2015-09-08 22:58 468与其他编程语言类似,Shell支持for循环。 for循环一 ... -
Shell case esac语句
2015-09-05 13:57 0case ... esac 与其他语言中的 switch .. ... -
Shell if else语句
2015-09-05 13:54 0if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。S ... -
shell printf命令:格式化输出语句
2015-09-13 16:01 546printf 命令用于格式化输出, 是echo命令的增强版。它 ... -
Shell echo命令
2015-09-13 16:00 1023echo是Shell的一个内部指令,用于在屏幕上打印出指定的字 ... -
Shell数组:shell数组的定义、数组长度
2015-09-12 10:17 603Shell在编程方面比Windows批处理强大很多,无论是在循 ... -
Shell字符串
2015-09-11 22:00 302字符串是shell编程中最常用最有用的数据类型(除了数字和字符 ... -
Shell注释
2015-09-11 22:00 374以“#”开头的行就是注释,会被解释器忽略。 sh里没有多行注 ... -
Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
2015-09-06 20:19 455Bash 支持很多运算符, ... -
Shell替换:Shell变量替换,命令替换,转义字符
2015-09-06 20:18 850如果表达式中包含特殊 ... -
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
2015-09-06 20:18 365前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其 ... -
第一个Shell脚本
2015-09-05 13:02 302打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell ... -
Shell脚本语言与编译型语言的差异
2015-09-05 12:58 445大体上,可以将程序设 ...
相关推荐
要显示所有本地定义的shell变量,可以使用不带参数的 `set` 命令。此外,用户还可以测试变量是否已经被设置或者初始化,如果没有,可以使用特定的值来替代。 环境变量与本地变量不同,它们在用户的整个会话中都是...
Shell变量是Shell编程的基础之一,它们能够存储各种类型的数据,如路径名、文件名或简单的数值等。Shell会将所有设置视为文本字符串来处理。 #### 二、本地变量 ##### 1. 定义与赋值 本地变量是在某个特定的Shell...
变量的赋值:①、静态语言 或 强类型②、动态语言 或 弱类型变量名命名规则? ==bash 中 变量的种类:==①、局部变量:★ 如何使用局部变量?★ 如何证明局部变量的生效范围?①、首先 使用 set 命令查看所有变量:...
# 尝试删除或修改只读变量 unset TEST # 会提示错误 TEST="New" # 也会提示错误 ``` #### 四、ARM环境变量设置注意事项 在ARM架构下,环境变量的设置与其他架构下的Linux系统并无本质区别。但是,由于ARM平台的...
* 使用 readonly 命令设置只读变量:$ readonly TEMP_KEVIN 6. 环境变量的应用 环境变量广泛应用于各种应用程序和系统配置中。例如,Java applications 可以使用环境变量来配置 JVM 的参数,Apache 服务器可以使用...
以下是关于Shell变量的一些关键知识点: 1. **变量命名规则**: - 变量名称允许由字母、数字和下划线组成,但不能以数字开头。 - 变量的默认类型是字符串,这意味着即使赋值为数字,它也会被视为文本。 - 赋值时...
- 尝试修改或删除只读环境变量将导致错误消息。 #### 三、环境变量的持久化设置 1. **在`/etc/profile`中设置环境变量:** - 编辑 `/etc/profile` 文件,并添加或修改环境变量的定义,例如设置 `CLASSPATH`: ...
只读变量一旦被设置后就不能再被改变。 ##### 局部变量 局部变量只能在当前 shell 进程中使用,不能被子进程继承。 ```sh #LOCALTEST="test" #echo${LOCALTEST} test #echo$LOCALTEST test ``` #### 变量扩展 变量...
本文主要探讨了Shell变量的使用、赋值、显示、删除以及一些特殊的操作。 1. **本地变量** 本地变量仅在当前Shell会话中有效,不会影响其他独立的Shell实例。定义本地变量的格式通常是`NAME=value1`,如`HOME=/home...
5. 使用 readonly 命令设置只读变量:例如,使用命令 `$ readonly TEST`可以将环境变量 TEST 设为只读。 环境变量的设置位于 `/etc/profile` 文件中,如果需要增加新的环境变量可以添加相应的行,例如 `export path...
4. **使用`set`命令查看Shell变量:** - `set`命令可以用来查看当前Shell会话中的所有变量(包括环境变量和其他内部变量)。例如: ```bash $ set BASH=/bin/bash BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3...
在Linux操作系统中,Shell变量是控制Shell行为的关键元素。它们存储数据,并且可以在脚本或命令行中被引用。以下是对Shell变量应用的详细讲解: 首先,获取变量的值可以通过在命令行中使用`echo $变量名`或者`echo ...
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。 5. 删除变量 使用 unset 命令可以删除变量。语法:unset variable_name 变量被删除后不能再次使用。unset 命令不能删除只读变量。 6. ...
- 只读变量:使用`readonly`关键字,如`readonly name`。 - 删除变量:使用`unset`命令,如`unset name`。 - 变量类型:包括本地变量、局部变量、环境变量和位置变量。 - 本地变量:在整个bash进程中可用。 - ...
- `unset`命令用于删除变量,但无法删除只读变量。 5. 变量类型 - 局部变量:仅在当前脚本内有效。 - 环境变量:所有程序均可访问,影响范围广。 - Shell变量:特定于Shell的变量,有特殊用途。 6. Shell字符...
在Linux系统中,Shell脚本是一种强大的自动化工具,它的核心组成部分就是...理解变量的类型、赋值规则、位置参数以及内部变量的使用,能帮助我们编写更高效、更具可读性的shell脚本,更好地利用Linux系统的自动化能力。
例如,`declare -i`用于声明整数类型,`declare -r`用于声明只读变量,以及`declare -a`用于声明数组变量等。 在Shell脚本中,变量可以分为四种类型,每一种类型都有其特定的作用域和生命周期: 1. 永久环境变量:...
- 设置只读变量:`readonly variable-name`。 - 查看只读变量:`readonly`。 2. **环境变量**: - 对所有用户进程有效,通常用于环境配置。 - 针对单个用户设置:`$HOME/.bash_profile` 或 `$HOME/.bashrc`。 ...
Shell变量:Shell变量的定义、删除变量、只读变量、变量类型 **变量定义**: - `VAR_NAME=value` 定义一个变量。 - `VAR_NAME="some value"` 可以包含空格或其他特殊字符。 **删除变量**: - `unset VAR_NAME` ...
- **删除变量**:使用 `unset` 命令可以删除变量,但 `unset` 不能用于删除只读变量。 #### 六、参数传递 在执行 Shell 脚本时,可以通过脚本参数的形式传递信息。这些参数在脚本中通常通过 `$1`, `$2`, ... 这样...