Shell脚本使用变量

        今天在写Shell脚本的时候,遇见这么一个问题

原始的脚本大意如下:

#!/bin/bash
DATE=$1
echo "文件名=log_$DATE.tar.gz"
exit;

假定参数1为20200422,

此时可以正常输出:文件名=log_20200422.tar.gz

然后我给该脚本增加了 一个变量 FLAG

#!/bin/bash
DATE=$1
FLAG=$2
echo "文件名=log_$DATE_$FLAG.tar.gz"
exit;

假定参数2为A

此时输出为:文件名=log_A.tar.gz

咦,奇怪。第一个变量为啥不见了,明明就是参考着第一个变量的使用方法写的。后面仔细看了shell变量的使用方法教程,才知道

变量名外面的花括号是可选的,加不加都行,但是加花括号是为了帮助解释器识别变量的边界

就比如我遇到的这种情况,如果$DATE不加花括号的话,解释器就无法识别此次使用变量名的边界,导致输出为空。

改为如下即可

#!/bin/bash
DATE=$1
FLAG=$2
echo "文件名=log_${DATE}_$FLAG.tar.gz"
exit;

踩的shell小坑,记录一下。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值