Shell编程——变量和运算符(二)

目录

♡♡♡1  变量的赋值和使用($):

♡♡♡2 变量替换(\、{}、):

♡♡♡3 bash 引号规则

♡♡双引号(解释):

♡♡单引号(不解释):

♡♡倒引号(执行命令):

♡♡♡4 运算符(+、=)、表达式求值($[]、let、expr)


♡♡♡1  变量的赋值和使用($):

♡♡在shell中使用变量不需要事先声明,直接使用等号赋值

♡♡当需要存取变量时,就要使用一个字符来进行变量替换。在bash中,美元符号“$”用于对一个变量进行解析。shell在碰到带有“$”的变量时会自动将其替换为这个变量的值

示例:

#! /bin/bash

#将一个字符串赋值给变量log
log="tuesday"

echo "the value is:"

#美元符号($)用于变量替换
echo $log

执行效果:

注意:变量只在其所在的脚本中有效。在上面这个脚本退出之后,变量log就失效了,此时在shell中试图查看log的值将什么也得不到 

但是使用source命令可以强行让一个脚本影响其父shell环境,比如 

另一个与之相反的命令是export,export让脚本可以影响其子shell环境,比如 

使用unset命令可以手动注销一个变量

unset count

♡♡♡2 变量替换(\、{}、):

♡♡如果希望输出$符号,则要使用转义字符“\”告诉shell忽略特殊字符的特殊含义。如下所示

♡♡shell提供了花括号{}来限定一个变量的开始和结束。通常在紧跟变量输出字母后缀时,就必须使用这个功能,如下所示

♡♡♡3 bash 引号规则

♡♡双引号(解释):

阻止shell对大多数特殊字符(例如#)进行解释。但“$”、“`”和“””仍然保持其特殊含义。

♡♡单引号(不解释):

阻止shell对所有字符进行解释。

♡♡倒引号(执行命令):

“`”这个符号位于Esc键的下方。当用倒引号括起一个shell命令时,这个命令将会被执行,执行后的输出结果将作为这个表达式的值。倒引号中的特殊字符一般都会被解释。

♡♡♡4 运算符(+、=)、表达式求值($[]、let、expr

和c++里大致一样,值得注意的是,在shell表示“相等”时,“==”和“=”在大部分情况下不存在差异,这和c/c++里有些不同。

例子:

 为什么结果不是3?

因为shell脚本语言是一种“弱类型”的语言,它并不知道变量num中保存的是一个数值,因此在遇到num=$num+2时,shell只是单纯地把两者连在一起作为新的值赋给变量num

但是加上$[]的表达形式就可以告诉shell应该对其中的表达式求值

 另一种表达形式也可以,let用于计算整数表达式的计算,如下:

expr命令也可以对表达式执行求值操作:

expr 1 + 2 #结果输出为3,需要注意的是它们之间都有个空格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼2333号程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值