Не могли бы вы попробовать использовать следующее, если вы не хотите использовать echo
, я использую здесь концепцию строки. Также вам НЕ нужно использовать grep
, так как awk
сам может искать ключевые слова в Input_file или значениях переменной.
a="hello world"
value=$(awk '/world/{print $NF}' <<<"$a")
echo "$value"
Вы можете получить больше информации от man bash
о Here Strings
следующим образом.
Here Strings Вариант документов здесь, формат:
<<<word
РЕДАКТИРОВАТЬ: Так как OP говорит, что OP тоже не хочет иметь концепцию Here Strings
, тогда может помочь следующее.
a="hello world"
value=$(awk -v val="$a" 'BEGIN{num=split(val, array," ");print array[num]}')
echo "$value"