Сценарий оболочки -извлекает пару значений с помощью sed/awk?

echo "savedefault --default=2 --once" | grub --batch

, где 2 означает загрузку третьего пункта меню grub.conf.

Измените 2 на соответствующий номер пункта меню, который вы хотите загрузить в следующий раз.

-1
13.10.2021, 14:37
2 ответа

Хотя лучшие ответы уже есть (declare $str), я оставлю здесь некоторые другие варианты.

Сsource:

source <(echo 'NAME="bla" TYPE="test kkk" SIZE="10"')

Сeval:

eval 'NAME="bla" TYPE="test kkk" SIZE="10"'

Оба имеют дело с экранированием параметров и пробелами (, напримерSIZE="with a space").

Оба параметра подлежат расширению, хотя:SIZE="*"или SIZE="$(hostname)"БУДУТ расширены/запущены.

0
13.10.2021, 15:35

Не уверен, но если вы хотите сохранить значение в других переменных, вы можете сделать, как показано ниже:

echo "NAME="bla" TYPE="test" SIZE="10"" | tr ' ' '\n' | while read line
do
   #this will give you the value. save it in any variable you want.
   name=$(echo $line | awk -F= '{print $2}') 
done

Как только вы получите значение, используйте условие if, чтобы сохранить их в переменной diff в соответствии со значением.

0
13.10.2021, 16:06

Теги

Похожие вопросы