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
值是自纪元
以来的秒数
我正在开发一个 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
值是自纪元