unix expr: синтаксическая ошибка

Почему следующее выражение дает мне выражение: синтаксическая ошибка?

pingval=`expr ping6 -c 1 "$url"`

В основном я хочу использовать значение, возвращаемое вышеупомянутым выражением в другом выражении, например

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

Какие-либо предложения?

1 ответ

Почему вы используете expr совсем? Обычно используется для простых математических / строковых функций.

Вы можете назначить результат (stdout) этого выражения, просто используя обратные пометки или, более современным способом, непосредственно с помощью:

pingval=$(ping6 -c1 "$url" | tail -1)

Если вы хотите создать выражение оболочки перед использованием, попробуйте что-то вроде:

cmd="ping6 -c 1 '$url' | tail -1"
echo cmd | sh 
Другие вопросы по тегам