Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 存储数学表达式的输出_Unix_Awk_Sh_Sunos - Fatal编程技术网

Unix 存储数学表达式的输出

Unix 存储数学表达式的输出,unix,awk,sh,sunos,Unix,Awk,Sh,Sunos,我不熟悉SunOS unix系统。我想在shell脚本中存储正常运行时间并将其转换为分钟。 下面是我在脚本中使用的内容 hrs=`uptime | awk '{print \$5}' | sed 's/[:,]/ /g' | awk '{print \$1}'` mins=`uptime | awk '{print \$5}' | sed 's/[:,]/ /g' | awk '{print \$2}'` uptimesecs=$(($mins*60))) 还有我在脚本中得到的错误 有人能帮

我不熟悉SunOS unix系统。我想在shell脚本中存储正常运行时间并将其转换为分钟。 下面是我在脚本中使用的内容

hrs=`uptime | awk '{print \$5}' | sed 's/[:,]/ /g' | awk '{print \$1}'`
mins=`uptime | awk '{print \$5}' | sed 's/[:,]/ /g' | awk '{print \$2}'`
uptimesecs=$(($mins*60)))
还有我在脚本中得到的错误


有人能帮我解释一下语法吗?

您在
awk
脚本中过度引用了
$
s:

hrs=`uptime | awk '{print $5}' | sed 's/[:,]/ /g' | awk '{print $1}'`
mins=`uptime | awk '{print $5}' | sed 's/[:,]/ /g' | awk '{print $2}'`
你做的工作也比必要的多。获得一次正常运行时间:

然后使用shell本身拆分
上的值

IFS=: read hrs min <<< "$uptime"

IFS=:read hrs min awk可以单独解析和计算。您不需要对其进行两次解析。还有代码< > X天<代码>,你想考虑。<代码>正常运行时间<代码>的值是多少?可能它与语言环境有关。
$
已经在用于提供
awk
脚本的单引号中进行了保护,以防止扩展;反斜杠是不必要的,可防止
awk
将其用作字段扩展。
IFS=: read hrs min <<< "$uptime"