Bash IP ЕСЛИ ТОЛЬКО ЗАЯВЛЕНИЕ - PullRequest
2 голосов
/ 18 октября 2011

Мне нужно запустить один сценарий с нескольких машин, но каждая машина требует выполнения уникальных команд.

Я думал, что bash-скрипт сможет это сделать, но я не слишком разбираюсь в этом отделе.

Код, который мне требуется, будет выглядеть аналогично приведенному ниже коду (или будет). Я знаю, что это далеко от совершенства или функциональности, но на самом деле это просто для того, чтобы выразить то, что я ищу.

Может кто-нибудь помочь мне с этим сценарием?

#/bin/bash
IP= ifconfig eth0 | grep inet | grep -v inet6 | cut -c 7-17 

If [$IP -eq 192.168.32.1]
then mkdir IPFolder-1
more code...
else
if [$IP -eq 192.168.32.2]
then mkdir IPFolder-2
more code...
else
if [$IP -eq 192.168.32.5]
then mkdir IPFolder-5
more code...

Ответы [ 2 ]

5 голосов
/ 18 октября 2011

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

IP=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -c 21-34)
if [[ $IP = 192.168.32.1 ]]; then
  mkdir IPFolder-1
elif [[ $IP = 192.168.32.2 ]]; then
  mkdir IPFolder-2
fi

Примечание: в Ubuntu 11.10 мне пришлось использовать cut -c 21-34, адаптироваться по мере необходимости.

0 голосов
/ 21 ноября 2011

Будьте осторожны, если локализация сконфигурирована, возможно, именно поэтому Сэм должен сократить 21-34 вместо 7-17.

Используйте LANG= ifconfig, чтобы везде на английском.

ItКажется, что ifconfig имеет другие причуды , которые нужно знать.

(Это должен быть больше комментарий, чем ответ, но я пока не могу комментировать.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...