roa*_*nai 0 bash shell-script date timestamps
我在 Bash 脚本中定义了一个变量,例如:
BIRTHDAY="1993-01-11 11:11 +08:00"
Run Code Online (Sandbox Code Playgroud)
并将其转换为纪元,date
然后echo
使用echo $(date -d $BIRTHDAY +%s)
.
但是,我收到错误:date: extra operand ‘+08:00’
。
但是,它适用于 bash 交互式 shell:
? ~ BIRTHDAY="1993-01-11 11:11 +08:00"
? ~ date -d $BIRTHDAY +%s
726721860
? argos echo $(date -d $BIRTHDAY +%s)
726721860
Run Code Online (Sandbox Code Playgroud)
我也尝试运行echo $(date -d \"$BIRTHDAY\" +%s)
,这也不起作用。
那么,它有什么问题呢?
你需要引用"$BIRTHDAY"
,像这样:
echo $(date -d "$BIRTHDAY" +%s)
Run Code Online (Sandbox Code Playgroud)
看来您实际上是在使用 zsh 作为交互式 shell,因为它是此命令唯一可以正常工作的命令(具有默认 IFS 值):
date -d $BIRTHDAY +%s
Run Code Online (Sandbox Code Playgroud)
无论如何,即使在 zsh 中,引用变量也是有帮助的:
date -d "$BIRTHDAY" +%s
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
407 次 |
最近记录: |