ping_average=(ping -c 10 na.leagueoflegends.com | tail -1|awk'{print $4}' | cut -d '/' -f 2)
[ “ping_average” < “176” ] && echo “Play” || echo “No”
这个值似乎不起作用,我得到错误代码“'/'附近的意外令牌和176:没有这样的文件或目录。”
答案 0 :(得分:0)
这里有很多问题......
$
(因此请使用$ping_average
而不是ping_average
)和命令替换(因此请使用$(ping ...)
而不是(ping ...)
})。awk
与其参数之间的空格。在shell中,空格是重要的语法;你不能在大多数地方添加或删除它们。| cut -d . -f 1
添加到ping管道来执行此操作。<
被视为输入重定向(即从名为&#34; 176&#34;的文件中读取) - 您需要使用[[ ]]
代替[ ]
,或引用/逃避它。但不要那样做因为...... <
执行字符串比较而不是数字比较。例如,[ 9 '<' 176 ]
将是假的,因为&#34; 9&#34;来自&#34; 1&#34;在排序顺序。相反,-lt
(如[ 9 -lt 176 ]
)。所以,经过纠正后,我得到了:
ping_average=$(ping -c 10 na.leagueoflegends.com | tail -1 | awk '{print $4}' | cut -d '/' -f 2 | cut -d . -f 1)
[ "$ping_average" -lt "176" ] && echo "Play" || echo "No"
顺便说一句,我建议您通过shellcheck.net运行代码;它不会发现所有可能存在的问题,但它会指出许多常见的错误。但是,在这种情况下,它会被`ping_average =(ping ...)表达式混淆得太多了。