bash 变量前的“@”是什么意思?

What does the '@' mean before a bash variable?

我正在开发一个 bash 脚本来检查最近 X 天是否进行了备份。 linux 和 macOS 上的脚本必须是 运行。我的问题是,当它检查它是否在 linux 或 macos 系统上 运行ning 时,我不明白 '@' 在'bckpT' linux 部分的变量。

case "$OS" in
   DARWIN)
       lastBackup=$($DATE -u -r $bckpT +%F)
       ;;

   LINUX)
       lastBackup=$($DATE -d @$bckpT +%F)
       ;;

   WIN)
       $ECHO "No script for WIN"
       ;;

   *)
       help
       ;;
esac

当没有'@'时,输出为:

/usr/bin/date: invalid date '1647907200'

date 命令中, @ 符号告诉命令将以下内容视为 seconds since epoch

在你的例子中,它认为参数 $bckpT 值是自纪元

以来的秒数