【发布时间】:2021-10-23 16:23:02
【问题描述】:
我想将上周日的日期存储在一个变量中。
#/bin/bash
OFFSET=$(date +%u)
COMMAND="date --date='"$((OFFSET))" days ago' +%Y%m%d"
DATEFULL=$($COMMAND)
echo offset $OFFSET
echo command $COMMAND
echo datefull $DATEFULL
输出:
[root@localhost ~]# ./test.sh
date: extra operand ‘ago'’
Try 'date --help' for more information.
offset 1
command date --date='1 days ago' +%Y%m%d
datefull
在命令行中粘贴 $COMMAND 的结果会得到正确的结果:
[root@localhost ~]# date --date='1 days ago' +%Y%m%d
20210822
那么他为什么声称“日期:额外操作数‘以前’’”?如何执行命令的结果并将其设置在变量中?
【问题讨论】:
-
不要将命令放在变量中,它们用于数据,而不是可执行代码。见BashFAQ #50: I'm trying to put a command in a variable, but the complex cases always fail!