GNU Coreutil Date(在CLI中输出数字,但在bash脚本中不输出)



每当我在bash CLI中运行命令时,我都会得到正确的输出

date +%Y%-m%d%j%M%S
202111063103528

然而,当我在bash脚本中运行这个时,我不会得到一个可以在以后的变量中使用的简单数字。我最终想用它来备份我生成的旧CSV文件。例如

#Doesn't print out correct date
DATE='date +%Y%-m%d%j%M%S'
echo $DATE
# Ultimately, wanting to feed that $DATE string here 
if [ -f "$CSV_OUTFILE" ]; then
echo "CSV file already exists. Renaming $CSV_OUTFILE to $CSV_OUTFILE.$DATE"
mv $CSV_OUTFILE $CSV_OUTFILE.$DATE
exit 1
fi

您将字符串date +%Y%-m%d%j%M%S分配给了$DATE。它包含一个空格,因此在mv中使用不带双引号的$DATE将其扩展为两个单词。

使用反引号而不是引号来捕获命令的输出:

DATE=`date +%Y%-m%d%j%M%S`

或者,最好使用$(...)语法(因为它可以嵌套,所以更好(:

DATE=$(date +%Y%-m%d%j%M%S)

相关内容

  • 没有找到相关文章

最新更新