Shell变量:Shell变量的定义、赋值和删除
在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。
这意味着,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。例如在C语言或者 C++ 中,变量分为整数、小数、字符串、布尔等多种类型。
当然,如果有必要,你也可以使用 Shell declare 关键字显式定义变量的类型,但在一般情况下没有这个需求,Shell 开发者在编写代码时自行注意值的类型即可。
定义变量
Shell 支持以下三种定义变量的方式:
variable=value
variable='value'
variable="value"
variable 是变量名,value 是赋给变量的值。如果 value 不包含任何空白符(例如空格、Tab 缩进等),那么可以不使用引号;如果 value 包含了空白符,那么就必须使用引号包围起来。使用单引号和使用双引号也是有区别的,稍后我们会详细说明。注意,赋值号
=的周围不能有空格,这可能和你熟悉的大部分编程语言都不一样。Shell 变量的名规范和大部分编程语言都一样:
变量名由数字、字母、下划线组成;
必须以字母或者下划线开头;
不能使用 Shell 里的关键字(通过 help 令可以查看保留关键字)。
变量定义举例:
变量名外面的花括号url=http://c.biancheng网站站点" rel="nofollow" />
author="严长生"
echo $author
echo ${author}
{ }是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:如果不给 skill 变量加花括号,写成skill="Java"
echo "I am good at ${skill}Script"
echo "I am good at $skillScript",解释器就会把 $skillScript 当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。给所有变量加上花括号
{ },这是个良好的编程习惯。修改变量的值
已定义的变量,可以被重新赋值,如:
url="http://c.biancheng网站站点" rel="nofollow" />
#!/bin/bash
url="http://c.biancheng网站站点" rel="nofollow" />
种方式把令用反引号我的建议:如果变量的内容是数字,那么可以不加引号;如果真的需要原样输出就加单引号;其他没有特别要求的字符串等最好都加上双引号,定义变量时加双引号是最常见的使用场景。 将令的结果赋值给变量
Shell 也支持将令的执行结果赋值给变量,常见的有以下两种方式:
variable=`command`
variable=$(command)
` `(位于 Esc 键的下方)包围起来,反引号和单引号非常相似,容易产生混淆,所以不使用这种方式;第二种方式把令用$()包围起来,区分更加明显,所以使用这种方式。例如,我在 demo 目录中创建了一个名为 log.txt 的文本文件,用来记录我的日常工作。下面的代码中,使用 cat 令将 log.txt 的内容读取出来,并赋值给一个变量,然后使用 echo 令输出。
[mozhiyan@localhost ~]$ cd demo
[mozhiyan@localhost demo]$ log=$(cat log.txt)
[mozhiyan@localhost demo]$ echo $log
严长生正在编写Shell教程,教程地址:http://c.biancheng网站站点" rel="nofollow" />
#!/bin/bash
myUrl="http://c.biancheng网站站点" rel="nofollow" />
bash: myUrl: This variable is read only.
删除变量
使用 unset 令可以删除变量。语法:变量被删除后不能再次使用;unset 令不能删除只读变量。unset variable_name
举个例子:
#!/bin/sh
myUrl="http://c.biancheng网站站点" rel="nofollow" />
- 随机文章
- 核心危机(核心危机魔石合成攻略)
- 饿了么红包怎么用(饿了么红包怎么用微信支付)
- 儿童教育文章(儿童教育)
- 光遇花手先祖位置(安卓光遇手花先祖)
- 广州4a广告公司(广州4a广告公司创意总监年薪)
- xboxones(xboxone手柄怎么配对主机)
- 兵马俑(兵马俑介绍和历史背景)
- 帆船比赛(帆船比赛视频)
- 海猫鸣泣之时游戏(海猫鸣泣之时游戏在哪玩)
- 韩国媳妇和小雪(韩国媳妇和小雪的父亲工资是多少)
- 儋州市第二中学(儋州市第二中学录取分数线)
- 鬼泣5攻略(鬼泣5攻略第三关怎么跳)
- 地球日主题(2020年世界地球日主题)
- 冰客(冰客果汁)
- 国外成人游戏(国外成人游戏注册需要visa信用卡)
- 拆奶罩
- 郭妮小说(恶魔的法则郭妮小说)
- 东天目山(东天目山景区)
- 蝙蝠给人类的一封信(蝙蝠给人类的一封信)
- 大松电饭煲(美的大松电饭煲)
- 服饰加盟(服饰加盟店招商)
- 疯狂填字(疯狂填字5)
- 点对点短信息(点对点短信息费是什么意思)
- 观音普门品(观音普门品念诵全文)
- 河北省大运会(河北省大运会时间)
- 骇客神条(骇客神条怎么辨别真假)
- 杜星霖(杜星霖图片)
- 查传倜(查传倜个人生活)
- 广州晓港公园(广州晓港公园正门图片)
- 钢筋等级符号(钢筋等级符号电脑怎么输入)
