unix expr:语法错误

unix expr:语法错误,unix,expr,Unix,Expr,为什么下面的表达式给我一个expr:syntax错误 pingval=`expr ping6 -c 1 "$url"` 基本上我想在另一个表达式中使用上述表达式返回的值,例如 var=$($pingval|tail -1 .... 有什么建议吗?你为什么要使用expr?它通常用于简单的数学/字符串函数 您可以仅使用反勾号指定该表达式的结果(stdout),也可以使用更现代的方式直接指定: pingval=$(ping6 -c1 "$url" | tail -1) 如果确实希望在使用之前构建

为什么下面的表达式给我一个expr:syntax错误

pingval=`expr ping6 -c 1 "$url"`
基本上我想在另一个表达式中使用上述表达式返回的值,例如

var=$($pingval|tail -1 ....

有什么建议吗?

你为什么要使用
expr
?它通常用于简单的数学/字符串函数

您可以仅使用反勾号指定该表达式的结果(stdout),也可以使用更现代的方式直接指定:

pingval=$(ping6 -c1 "$url" | tail -1)
如果确实希望在使用之前构建shell表达式,请尝试以下操作:

cmd="ping6 -c 1 '$url' | tail -1"
echo cmd | sh 

基本上我想在多个表达式中使用pingval。使用上述方法后,我不断收到一个错误PING:Command not found?这两种方法中的哪一种导致了这个错误?这是什么操作系统?在unix中使用vi编辑器。错误出现在表达式中,我尝试使用给定的pingval值,即cmd=$($pingval | tail-1 | awk'{print$4}'),这对我来说很有效:
var=$(ping6-c1“$url”| tail-1 | awk'{print$4})“
,给出类似于
0.025/0.025/0.025/0.000
的信息我很感激,同样的方法对我也适用。唯一的问题是我想多次使用pingval给出的值,而不必重新运行ping表达式。