“在 bash 脚本中使用“date”命令时出现无效日期‘TZ=“UTC”@’”错误

问题描述 投票:0回答:2

我正在尝试运行一些在互联网上获得的 bash 脚本,但它不断吐出错误:

日期:无效日期‘TZ="UTC" @’

参考部分代码:

while [ $(date --date="TZ=\"UTC\" @$var2" +'%D') == $(date --date="TZ=\"UTC\"" +'%D') ] ; do

一开始,还有更多问题,但我设法通过使用双括号(“[[”和“]]”)解决了一个(“[:==:预期一元运算符”)。

更换支架后:

while **[[** $(date --date="TZ=\"UTC\" @$var2" +'%D') == $(date --date="TZ=\"UTC\"" +'%D') **]]** ; do

另外,我读到这个脚本应该在没有 sudo 的情况下运行。我以 root 身份执行它,但即使我不这样做,它也没有运行,因为我也无法解决权限错误。

我的想法是,这可能是

--date
的问题,它无法读取整个字符串,只能读取“@”(包括“@”)。我在 bash 方面没有太多经验,因此我浏览了论坛和网站,但找不到问题的答案。任何人都可以帮忙解释一下这个 while 语句中究竟发生了什么吗?

linux bash date timezone prediction
2个回答
1
投票

TZ=UTC
不是日期字符串的一部分,它是您在
date
命令之外设置的环境变量:

while TZ=UTC [ "$(date --date "@$var2" +'%D')" = $(date +'%D') ] ; do

0
投票

我想我也被困住了 - 看起来 OP 正在努力运行与我相同的东西 - Raspberry Pi 卫星接收器

我在脚本中添加了 +debug 并收到以下错误 - date --date @ +%D 如下所示。不确定如何解决这个问题(我是新手)希望有人能指出我正确的方向:)

+ var2=

++ /usr/bin/predict -t /home/admin/weather/predict/weather.tle -p 'NOAA 15' ++ awk -v max=0 '{if($5>max){max=$5}}END{打印最大值}'

  • MAXELEV=文件 ++ 日期 --date @ +%D 日期:无效日期“@” ++ 日期 +%D
  • TZ=UTC
  • '[' '' = 08/13/23 ']'
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.