【踩坑記錄】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小坑,記錄一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章