我正在编写一个shell脚本,我希望有这个代码
echo $(awk '{print $1}' /proc/uptime) / 3600 | bc
最后没有换行符。 我想用echo -n编写它,但是这段代码
echo -n $(awk '{print $1}' /proc/uptime) / 3600 | bc
导致语法错误:
(standard_in) 1: syntax error
你能帮我解决这个问题吗? 非常感谢你!
答案 0 :(得分:1)
echo $(awk '{print $1}' /proc/uptime) / 3600 | bc | tr -d "\n"
备选方案:
echo -n $(($(cut -d . -f 1 /proc/uptime)/3600))
mapfile A </proc/uptime; echo -n $((${A%%.*}/3600))
答案 1 :(得分:0)
使用echo -n
的解决方案:
echo -n $(echo $(awk '{print $1}' /proc/uptime) / 3600 | bc)
通常情况下,如果foo
生成一行输出,即使echo -n $(foo)
很复杂,也可以使用foo
打印相同的输出而不使用换行符。
使用纯awk
的更直接的解决方案(因为awk
执行算术和输出格式化,使用awk
和{{1}没有太大意义}}):
bc