Я создаю сценарий оболочки, который должен выполнять некоторые локальные настройки и отображать IP-адрес машины в текстовом файле. Причина, по которой мне нужно это сделать, - получить IP-адрес в сценарии PHP и использовать его оттуда как root для сайта.
Я могу получить IP-адрес с помощью ifconfig, но мне нужно удалить бесполезную информацию. Я бы хотел сделать это в сценарии оболочки, а не в файле PHP.
ОС - CentOS 5.5, мне нужен IP-адрес eth0.
Хорошо ip -4 -o addr show dev eth0
даст вам достаточно хороший однострочный вывод, показывающий адрес, но для извлечения адреса потребуется некоторый синтаксический анализ. Примерно так должно работать:
ip -4 -o addr show dev eth0 | awk '{ gsub(/\/[0-9]+$/, "", $4); print $4 }'
Я лично разорву связь между сценарием оболочки и сценарием php, чтобы избежать их тесной связи. Если вам нужен IP-адрес сервера, запустите свой скрипт отдельно и получите IP-адрес серверов программно. Вы можете сделать это в соответствии с инструкциями Вот. Таким образом, у вас будет только логическая зависимость от сценария оболочки.