首页 > 解决方案 > 在 bash 上设置一个带有当前日期的变量,包括选项卡

问题描述

我正在尝试使用当前日期设置一个变量,但在日期和时间之间有一个选项卡。在当前变量上,我还希望时间回到 1 小时。

这工作正常:

#date -d '1 hour ago' "+%Y-%m-%d"$'\t'"%H:"
2019-07-17      08:

但是当我尝试将其设置为变量时,选项卡会被空格替换:

#var1=$(date -d '1 hour ago' "+%Y-%m-%d"$'\t'"%H:")
#echo $var1
2019-07-17 08:

#var1=`date -d '1 hour ago' "+%Y-%m-%d"$'\t'"%H:"`
#echo $var1
2019-07-17 08:

知道为什么会发生这种情况以及如何将选项卡包含在变量中吗?

标签: bash

解决方案


选项卡变量中。您正在通过打印错误来破坏它。

echo "$var1"
# => 2019-07-17      08:

如果您说 just echo $var1,则echo获取两个由空格分隔的参数(您的选项卡);echo打印由空格分隔的每个参数。

如果您说echo "$var1",则echo获取一个参数,其中包含选项卡。


推荐阅读