zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Добрый день. Что то я завтыкал ) надо попинговать определенные хосты S1=192.168.1.200 S2=192.168.10.1 S3=192.168.100.200 for i in {1..3}; do ping $S`echo $i`; done bash -x скрипт дает мне ping 1 ping 2 и ping 3 Как передать значение переменных S1 S2 S3 внутрь цикла? |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
TEMP=('ya.ru' 'google.com') for I in ${TEMP} do ping ${I} -c 2 done
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Запускать скрипт через bash -x не нужно, достаточно прописать в начале указатель на баш, и сделать скрипт исполняемым командой chmod 755 скрипт После этого можно запускать просто ./скрипт А если положите его в один из путей, указанных в PATH, то просто скрипт Если в именах хостов нет пробелов и прочих спецсимволов, а насколько я помню, их там быть не должно, можно сделать так: #!/bin/bash HOSTS="ya.ru google.com 8.8.8.8" for i in $HOSTS ; do ping -c2 -w2 $i done Если список хостов не вводится снаружи и нигде кроме цикла не используется, можно перенести его прямо в цикл: #!/bin/bash for i in ya.ru google.com 8.8.8.8 ; do ping -c2 -w2 $i done |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
к сожалению нет[[email protected] ~]$ bash -x work/scripts/ping + TEMP=('ya.ru' 'google.com') + for I in '${TEMP}' + ping ya.ru -c 2 PING ya.ru (213.180.204.3) 56(84) bytes of data. 64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=1 ttl=51 time=14.1 ms 64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=2 ttl=51 time=13.5 ms --- ya.ru ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 13.501/13.848/14.195/0.347 ms |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Чего нет? |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
не подставляет второй хост Опс. не видел предыдущий пост, сейчас почитаю ) |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
Natrio да, так работает. bash -x запускаю чтобы работу скрипта дебажить, там еще много чего происходит и ломается ) мне было важно понять, как передавать переменные в тело цикла, за что вам большое спасибо. |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
zubastiy а если TEMP=('ya.ru' 'google.com') заменить на TEMP='ya.ru google.com' должно работать.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
zubastiy |
|
Темы:
136
Сообщения:
548
Участник с: 18 сентября 2009
|
nafanjazubastiy да, так работает, спс. |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
вот так даже лучшеTEMP=('ya.ru' 'google.com') for I in ${TEMP[*]} do ping ${I} -c 2 -w 2 done
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |