我正在编写一个shell脚本,将天数转换为秒数。
我正在努力在变量和变量中首先获取值。
以下是我正在运行的脚本,但它对我不起作用。
DAYS=4
SECONDSPERDAY=86400
SECONDS=$(expr $DAYS/86400)
echo=$SECONDS
答案 0 :(得分:4)
例如,您的脚本在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
来避免冲突。