这对于Unix Shell脚本来说在语法上是否正确?

时间:2014-01-23 12:28:10

标签: shell unix scripting

我想在" Personal_20140118D_1.zip"

中用$ DATE替换20140118

是"个人_" $ DATE" D_1.zip"语法正确吗?

DATE = date +%Y%m%d

如果[($ FILE ==" Personal_20140118D_1.zip")-a($ TODAY ==" Sat")];然后

..... ...

2 个答案:

答案 0 :(得分:1)

是。引号仅保护空格不会成为单词分隔符。你可以在任何地方拥有它们。因此,只要ab不包含空格,这些都是等效的:

ab
"a"b
"a""b"
a"b"
a"$var"b
a${var}b

我建议使用"a${var}b",但因为其他形式看起来很混乱。

答案 1 :(得分:1)

替换变量中第一次出现的日期:

date_file=${FILE/20140118/$DATE}

有关详细信息,请参阅man bash

示例:

$ date=`date +%Y%m%d`
$ file="Personal_20140118D_1.zip"
$ date_file=${file/20140118/$date}
$ echo "$date_file"
Personal_20140123D_1.zip