На microblaze uclinux: поместите IP-адрес в переменную

Да, это связано с вводом IP-адреса в Баш переменная. Есть ли лучший способ, но ни одна из идей не работает для меня на microblaze uclinux. Я хочу, чтобы мой IP-адрес eth0 сохранялся в переменной оболочки, чтобы я мог написать сценарий, используя его. Мне нужны альтернативные идеи, как это сделать.
ifconfig доступен, если это поможет. Я обнаружил, что в файле /etc/config/dhcp0.conf хранится правильный ip-адрес, вот содержимое файла:

1 192.168.10.102

Как удалить 1 и пробел без с помощью следующих команд

  • grep
  • сед
  • резать
  • это тоже не работает: echo ${variable:2}

person Stefatronik    schedule 22.12.2017    source источник
comment
А как насчет sed?   -  person Cyrus    schedule 22.12.2017
comment
Я думаю, это слишком много, чтобы просить awk.   -  person Barmar    schedule 22.12.2017
comment
к сожалению нет :(   -  person Stefatronik    schedule 22.12.2017
comment
Какую оболочку вы используете? Какие функции вы можете использовать, во многом зависит от оболочки (и если ${variable:2} не работает, это не bash, поэтому тег неверен). Ответы на этот вопрос предполагают, что это может быть любой из нескольких гораздо менее -мощные снаряды.   -  person Gordon Davisson    schedule 22.12.2017


Ответы (2)


Вы можете использовать встроенный в оболочку read:

read num ip </etc/config/dhcp0.conf

$num будет содержать номер в начале строки, $ip будет содержать IP.

person Barmar    schedule 22.12.2017

Назначить вывод ifconfig eth0 массиву

ifout=($(ifconfig eth0))

Удалите все до точки с запятой 6-го элемента массива и присвойте его переменной $ethip

ethip=${ifout[6]#*:}

person jracine    schedule 22.12.2017
comment
Хотя решение @Barmar работает, я пробовал это, но получаю сообщение об ошибке: /var/tmp # ifout=($(ifconfig eth0)) sh: syntax error at 'ifout=' - person Stefatronik; 22.12.2017
comment
Похоже, вы используете sh, а не bash. Какая версия ш? 4.1 вроде работает sh-4.1# ifout=($(ifconfig eth0)) sh-4.1# - person jracine; 22.12.2017
comment
ууух хороший вопрос. это на busybox 1.23. sh --version является недопустимой опцией - person Stefatronik; 22.12.2017