Shell脚本的学习笔记一:变量
三种变量:
输出结果如下
第一个脚本测试 Are you ready? 输入 y 输入为 y#输出"",为空 I love you #[代码1] I love you #[代码2] Tomorrow, I would say 'I_love_you!' to you #[代码1]#无任何输出,[代码2]体现 test: ${xxx1} #[代码3] test: I love you #[代码4] ./test.sh: 行 22: xxx4: 只读变量 #[代码6] ./test.sh: 第 23 行: unset: xxx4: 无法取消设定: 只读 variable #[代码7]第1行的#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell;后面的/bin/bash就是指明了解释器的具体位置。
第2行的#及其后面的内容是注释。
第3行的 echo 命令用于向标准输出文件,输出文本。使用echo输出命令时,可使用echo "xxxx"直接输出;若要输出变量要使用echo $xxx(xxx为变量名)。
定义、使用和修改变量
1. 定义变量
Shell 支持以下三种定义变量的方式:
注意,赋值号=的周围不能有空格。
variable 是变量名,value 是赋给变量的值。如果 value 不包含任何空白符(例如空格、Tab 缩进等),那么可以不使用引号;如果 value 包含了空白符,那么就必须使用引号包围起来。
使用单引号和使用双引号也是有区别的。单引号[代码3],双引号[代码1][代码4]
| 单引号 | 原样输出,定义显示纯字符串,变量无效。 |
| 双引号 | 定义字符串中附带有变量和命令并且想将其解析后再输出的变量。 |
2. 使用变量
使用一个定义过的变量,只要在变量名前面加美元符号$即可:echo $xxx或echo ${xxx};变量名外面的花括号{ }是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,如下第6行。
3. 修改变量
如果要修改变量,可以重新赋值。
4. 将命令的结果赋值给变量
Shell 也支持将命令的执行结果赋值给变量,常见的有以下两种方式:
|第一种:用反引号`包围|第二种:用$()包围| |:---------------------------:| :------------------------:| |```variable=command```|variable=$(command)`|
|不推荐:反引号和单引号非常相似,容易产生混淆|推荐:区分明显|
例如,在当前文件夹下有test.txt文件,并使用cat命令读取,如下(结果相同)。
haveALook=$(cat test.txt) echo $haveALook haveALook=`cat test.txt` echo $haveALook5. 只读变量
readonly xxxxx(xxxxx为变量名),只读变量的值不能被改变。[代码5][代码6][代码7]
6. 删除变量
使用 unset 命令可以删除变量:unset xxxxx。[代码2]
执行脚本
使用chmod +x xxx.sh或chmod 755 xxx.sh为脚本添加执行权限。
执行脚本时,在脚本所在目录输入./xxx.sh执行脚本。./表示当前目录,整条命令的意思是执行当前目录下的 xxx.sh 脚本。如果不写./,Shell会到系统路径(由 PATH 环境变量指定)下查找。
类似,source 命令也可读取并在当前环境中执行脚本,同时还可返回脚本中最后一个命令的返回状态;如果没有返回值则返回 0,代表执行成功;如果未找到指定的脚本则返回 false。
转载于:https://www.cnblogs.com/Yogile/p/10544127.html
总结
以上是生活随笔为你收集整理的Shell脚本的学习笔记一:变量的全部内容,希望文章能够帮你解决所遇到的问题。