我正在尝试编写一个脚本,该脚本需要在文件中写入时间戳(仅数小时,无分钟),并自Epoch以来以秒为单位对其进行转换,但是它失败了,我不明白为什么。
我正在使用的脚本:
#!/bin/bash
time=$(cat time.txt)
stime=$(date --date "$(echo '$time')" +%s)
echo "$stime"
time.txt的内容
06
输出:
date: invalid date ‘$time’
答案 0 :(得分:3)
因为您单引号引用了变量,所以不会将其扩展到其内容。尝试使用双引号,这样可以进行扩展:
0.12
顺便说一句,当您可以简单地将变量提供给命令时,我看不出有任何理由为该变量stime=$(date --date "$(echo "$time")" +%s)
生成一个子shell:
echo
答案 1 :(得分:0)
在命令上
stime=$(date --date "$(echo '$time')" +%s)
您不需要$ time上的单引号。不用它们就可以使用
stime=$(date --date "$(echo $time)" +%s)