我正在编写一个shell脚本,将天数转换为秒数。
我的工作是先在变量中获取值,然后不使用变量。
下面是我正在运行的脚本,但对我不起作用。
DAYS=4
SECONDSPERDAY=86400
SECONDS=$(expr $DAYS/86400)
echo=$SECONDS
最佳答案
例如,在bash或zsh中,脚本运行良好,但$()
与旧的shell不兼容。也许你有不同的外壳?
而且,echo=blah
可能不是你想要的,显然你的公式是错的。
试试这个:
DAYS=4
SECONDSPERDAY=86400
seconds=`expr $DAYS '*' $SECONDSPERDAY`
echo $seconds
如果不使用旧的不符合posix的shell,那么最好的方法可能是这样:
DAYS=4
SECONDSPERDAY=86400
seconds=$(( DAYS * SECONDSPERDAY ))
echo $seconds
编辑…
警告:
$SECONDS
在bash中有特殊含义!$SECONDS
的值随着时间的推移而自动增加。您可以通过指定一个值来重置它,但它不会保持设置为该值。上面的脚本可能会工作得很好,因为它执行得非常快,但是随后对该值的任何使用都可能得到不同的值。我已经编辑了我的答案以使用$seconds
来避免冲突。关于linux - 如何在Linux中将天数转换为秒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35555038/