<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; EXPECT передача переменной скрипту]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=11486&amp;type=atom" />
	<updated>2012-06-28T09:52:59Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=11486</id>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284693#p284693" />
			<content type="html"><![CDATA[<p>Здравствуйте, коллеги!<br />А expect умеет &quot;выдергивать&quot; из переменной символы?<br />Допустим есть скрипт, которому передаю значение переменной </p><div class="codebox"><pre><code># /home/local 192.168.0.1</code></pre></div><div class="codebox"><pre><code>#!/usr/bin/expect -f

set timeout -1
spawn telnet $SWITCH_IP
match_max 100000
expect -exact &quot;Trying $SWITCH_IP...\r\r
Connected to $SWITCH_IP ($SWITCH_IP).\r\r
Escape character is &#039;^\]&#039;.\r\r
\r
\r
User Access Verification\r
\r
Username: &quot;
send -- &quot;логин\r&quot;
expect -exact &quot;логин\r
Password: &quot;
send -- &quot;пароль\r&quot;
expect -exact &quot;\r
\r
switch10027#&quot;
send -- &quot;conf t\r&quot;
expect -exact &quot;conf t\r
Enter configuration commands, one per line.  End with CNTL/Z.\r</code></pre></div><p>Можно ли сделать так, чтобы при &quot;длинне&quot; переменной выше 11 символов, скрипт &quot;Обрезал&quot; ее до 11.</p><p>Допустим мы передаем&nbsp; </p><div class="codebox"><pre><code># /home/local 192.168.0.19875</code></pre></div><p>Скрипт проверяет переменную и обрезфет ее до 192.168.0.1.</p><p>Спасибо.</p>]]></content>
			<author>
				<name><![CDATA[Munsera]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10733</uri>
			</author>
			<updated>2012-06-28T09:52:59Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284693#p284693</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=273491#p273491" />
			<content type="html"><![CDATA[<p>Столкнулся со схожей проблемой, пока не могу найти решение<br /><a href="http://www.opennet.ru/openforum/vsluhforumID9/9447.html#3">http://www.opennet.ru/openforum/vsluhfo … 447.html#3</a><br />суть такова, в теле expect скрипта вызываю любую команду shell, результат который возвращает команда shell нужно присвоить переменной в скрипте expect.</p>]]></content>
			<author>
				<name><![CDATA[nastr]]></name>
				<uri>https://linuxforum.ru/profile.php?id=22449</uri>
			</author>
			<updated>2012-05-10T07:44:10Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=273491#p273491</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151619#p151619" />
			<content type="html"><![CDATA[<p>Единственная проблема:<br />$nom(config)#&quot;<br />понимает как массив. Как можно переменную вставить в середину слова???</p>]]></content>
			<author>
				<name><![CDATA[Munsera]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10733</uri>
			</author>
			<updated>2011-03-02T10:12:13Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151619#p151619</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151618#p151618" />
			<content type="html"><![CDATA[<p>Сделал подругому. Правда геморно, но зато все видно и на лицо)))</p><div class="codebox"><pre><code>set sw [lindex $argv 0]
set witch10027 192,168,0,2
set witch10026 192,168,0,5


if {$sw==$witch10027} {set nom switch10027}




$nom#&quot;
send -- &quot;conf t\r&quot;
expect -exact &quot;conf t\r
Enter configuration commands, one per line.  End with CNTL/Z.\r
$nom(config)#&quot;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Munsera]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10733</uri>
			</author>
			<updated>2011-03-02T10:07:46Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151618#p151618</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151615#p151615" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Munsera пишет:</cite><blockquote><p>Как сделать так, чтобы expect понимал &quot;*&quot;. Т.е. мне нужно:</p></blockquote></div><p>вы знает,.. Не помню. Как-то можно, но не нужно. expect я только в крайнем случае юзаю - если надо что-то передать интерактивной программе. В самом крайнем случае, я меняю сам скрипт. Например, как я понимаю, вам нужно сменить switch10027 скажем на switch10028?<br />ок, пишем<br /></p><div class="codebox"><pre><code>sed -i &quot;s/switch10027/switch10028/g&quot; script.expect</code></pre></div><p>а ещё лучше будет сделать так:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">sed &quot;s/#SWITCH#/$SWITCH/g&quot; script.tpl &gt;script.expect</div><br />тут $SWITCH это переменная шелла, с нужным параметром, а script.tpl это шаблон, в котором вместо параметра написано #SWITCH#<br />т.е. по шаблону мы генерируем нужные скрипты на данный случай. ибо в самом экспекте программировать невозможно - кажется, что его специально запутывали. <img src="https://linuxforum.ru/img/smilies/ac.gif" alt="ac" /></p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-03-02T10:01:55Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151615#p151615</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151592#p151592" />
			<content type="html"><![CDATA[<p>А можно еще вопрос:<br />Как сделать так, чтобы expect понимал &quot;*&quot;. Т.е. мне нужно:<br /></p><div class="codebox"><pre><code>switch10027(config)#&quot;
send -- &quot;ip acce        &quot;
expect -exact &quot;\r
switch10027(config)#ip access-list &quot;
send -- &quot;e </code></pre></div><p>А вот так:<br /></p><div class="codebox"><pre><code>*(config)#&quot;
send -- &quot;ip acce        &quot;
expect -exact &quot;\r
*(config)#ip access-list &quot;
send -- &quot;e </code></pre></div><p>Для того чтобы сделать скрипт универсальным.</p>]]></content>
			<author>
				<name><![CDATA[Munsera]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10733</uri>
			</author>
			<updated>2011-03-02T09:01:49Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151592#p151592</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151590#p151590" />
			<content type="html"><![CDATA[<p>Просто написал <br /></p><div class="codebox"><pre><code>nano /home/local SWITCH_IP </code></pre></div><p>В программе. И все заработало! Значение передалось!))<br />Большое спасибо за помощь!!!</p>]]></content>
			<author>
				<name><![CDATA[Munsera]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10733</uri>
			</author>
			<updated>2011-03-02T08:58:03Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151590#p151590</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151588#p151588" />
			<content type="html"><![CDATA[<p>Все понял!<br />СПАСИБО БОЛЬШОЕ!!!!!</p>]]></content>
			<author>
				<name><![CDATA[Munsera]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10733</uri>
			</author>
			<updated>2011-03-02T08:56:33Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151588#p151588</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151584#p151584" />
			<content type="html"><![CDATA[<p>Логика такая:<br />Программа при определенном событии вызывает скрипт. В програме есть переменная SWITCH_IP, которая принимает значение IP адреса. В базе программы IP адресов много. Но она выбирает один,который подходит под условие. <br />Вот я написал скрипт, а как сделать так чтобы программа передала значение скрипту незнаю. А сейчас еще больше запутался.</p>]]></content>
			<author>
				<name><![CDATA[Munsera]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10733</uri>
			</author>
			<updated>2011-03-02T08:52:32Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151584#p151584</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151582#p151582" />
			<content type="html"><![CDATA[<p>в смысл список должен быть таким:<br /></p><div class="codebox"><pre><code>192.168.0.1
231.2.1.43
234.243.1.1
10.0.0.22</code></pre></div>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-03-02T08:48:41Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151582#p151582</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151581#p151581" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Munsera пишет:</cite><blockquote><p>ПРосто будет много IP адресов...</p></blockquote></div><p>сделайте список <span class="bbu">list_ip.txt</span> по одному на каждый ip, потом так:<br /></p><div class="codebox"><pre><code>#/bin/sh

while read ip
do
 /root/script.expect $ip
done &lt;list_ip.txt</code></pre></div>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-03-02T08:46:22Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151581#p151581</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151580#p151580" />
			<content type="html"><![CDATA[<p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"># /home/local 192.168.0.1</div><br />ЗЫЖ зря вы так криво скрипт назвали. могли-бы<br /><span class="bbu">/root/script.expect</span><br />а то непонятно.</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-03-02T08:43:35Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151580#p151580</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151577#p151577" />
			<content type="html"><![CDATA[<p>ПРосто будет много IP адресов...</p>]]></content>
			<author>
				<name><![CDATA[Munsera]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10733</uri>
			</author>
			<updated>2011-03-02T08:42:16Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151577#p151577</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151575#p151575" />
			<content type="html"><![CDATA[<p>Понятно, спасибо.<br />А при вызове этого скрипта, как ему передать значение?<br />Мне нужно чтобы программа вызвала скрипт и передала значение ему. Настраивается это все в командной строке.<br />[root@localhost ~]# /home/local а дальше что писать?</p>]]></content>
			<author>
				<name><![CDATA[Munsera]]></name>
				<uri>https://linuxforum.ru/profile.php?id=10733</uri>
			</author>
			<updated>2011-03-02T08:40:39Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151575#p151575</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: EXPECT передача переменной скрипту]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=151574#p151574" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Munsera пишет:</cite><blockquote><p>ТАк писать?</p></blockquote></div><p>НЕЕЕТТТ!!!11<br /></p><div class="codebox"><pre><code>#!/usr/bin/expect -f

set timeout -1
set SWITCH_IP [lindex $argv 0]
spawn telnet $SWITCH_IP
match_max 100000
expect -exact &quot;Trying $SWITCH_IP...\r\r
Connected to $SWITCH_IP ($SWITCH_IP).\r\r
Escape character is &#039;^\]&#039;.\r\r
\r
\r
User Access Verification\r
\r
Username: &quot;
send -- &quot;логин\r&quot;
expect -exact &quot;логин\r
Password: &quot;
send -- &quot;пароль\r&quot;
expect -exact &quot;\r
\r
switch10027#&quot;
send -- &quot;conf t\r&quot;
expect -exact &quot;conf t\r
Enter configuration commands, one per line.  End with CNTL/Z.\r
switch10027(config)#&quot;
send -- &quot;ip acce        &quot;
expect -exact &quot;\r
switch10027(config)#ip access-list &quot;
send -- &quot;e   &quot;
expect -exact &quot;\r
switch10027(config)#ip access-list extended &quot;
send -- &quot;155\r&quot;
expect -exact &quot;155\r
switch10027(config-ext-nacl)#&quot;
send -- &quot;per    &quot;
expect -exact &quot;\r
switch10027(config-ext-nacl)#permit &quot;
send -- &quot;ip g^H&quot;
expect -exact &quot;ip g^H ^H&quot;
send -- &quot;h   &quot;
expect -exact &quot;\r
switch10027(config-ext-nacl)#permit ip host &quot;
send -- &quot;х.х.х.5 a        &quot;
expect -exact &quot;\r
switch10027(config-ext-nacl)#permit ip host х.х.х.5 any &quot;
send -- &quot;\r&quot;
expect -exact &quot;\r
switch10027(config-ext-nacl)#&quot;
send -- &quot;exit\r&quot;
expect -exact &quot;exit\r
switch10027(config)#&quot;
send -- &quot;exit\r&quot;
expect -exact &quot;exit\r
switch10027#&quot;
send -- &quot;exit\r&quot;
expect eof</code></pre></div>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2011-03-02T08:38:02Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=151574#p151574</id>
		</entry>
</feed>
