pexpect fails to match command if greater than 65 characters
Clash Royale CLAN TAG#URR8PPP
Issue with pexpect, python module.
Pexpect fails to do expected behavior if the length of the command is greater than 65.
#!/usr/bin/python
import pexpect
sshCmd='ssh root@15.186.22.105'
prompt='[root@user ~]#'
ConnectToClient=pexpect.spawn(sshCmd)
ConnectToClient.expect('password')
ConnectToClient.send('abcd')
ConnectToClient.expect(prompt)
ConnectToClient.send('echo abcdefghijklmnopqrst111111111111111111111111111111111111111111111111111111111 ')
ConnectToClient.expect(prompt) ---> PASS
command = 'echo abcdefghijklmnopqrst111111111111111111111111111111111111111111111111111111111'
ConnectToClient.expect(command, prompt)
While expecting ":", the command (.*) prompt
---> FAILS if the length of command is greater than 65.
expect_str = "%s(.*)%s" % (command, self._default_prompt)
python expect
add a comment |
Issue with pexpect, python module.
Pexpect fails to do expected behavior if the length of the command is greater than 65.
#!/usr/bin/python
import pexpect
sshCmd='ssh root@15.186.22.105'
prompt='[root@user ~]#'
ConnectToClient=pexpect.spawn(sshCmd)
ConnectToClient.expect('password')
ConnectToClient.send('abcd')
ConnectToClient.expect(prompt)
ConnectToClient.send('echo abcdefghijklmnopqrst111111111111111111111111111111111111111111111111111111111 ')
ConnectToClient.expect(prompt) ---> PASS
command = 'echo abcdefghijklmnopqrst111111111111111111111111111111111111111111111111111111111'
ConnectToClient.expect(command, prompt)
While expecting ":", the command (.*) prompt
---> FAILS if the length of command is greater than 65.
expect_str = "%s(.*)%s" % (command, self._default_prompt)
python expect
OP has asked same question on the pexpect development page over a month ago on GitHub, but no reply. github.com/pexpect/pexpect/issues/225
– steve
Aug 5 '15 at 6:32
add a comment |
Issue with pexpect, python module.
Pexpect fails to do expected behavior if the length of the command is greater than 65.
#!/usr/bin/python
import pexpect
sshCmd='ssh root@15.186.22.105'
prompt='[root@user ~]#'
ConnectToClient=pexpect.spawn(sshCmd)
ConnectToClient.expect('password')
ConnectToClient.send('abcd')
ConnectToClient.expect(prompt)
ConnectToClient.send('echo abcdefghijklmnopqrst111111111111111111111111111111111111111111111111111111111 ')
ConnectToClient.expect(prompt) ---> PASS
command = 'echo abcdefghijklmnopqrst111111111111111111111111111111111111111111111111111111111'
ConnectToClient.expect(command, prompt)
While expecting ":", the command (.*) prompt
---> FAILS if the length of command is greater than 65.
expect_str = "%s(.*)%s" % (command, self._default_prompt)
python expect
Issue with pexpect, python module.
Pexpect fails to do expected behavior if the length of the command is greater than 65.
#!/usr/bin/python
import pexpect
sshCmd='ssh root@15.186.22.105'
prompt='[root@user ~]#'
ConnectToClient=pexpect.spawn(sshCmd)
ConnectToClient.expect('password')
ConnectToClient.send('abcd')
ConnectToClient.expect(prompt)
ConnectToClient.send('echo abcdefghijklmnopqrst111111111111111111111111111111111111111111111111111111111 ')
ConnectToClient.expect(prompt) ---> PASS
command = 'echo abcdefghijklmnopqrst111111111111111111111111111111111111111111111111111111111'
ConnectToClient.expect(command, prompt)
While expecting ":", the command (.*) prompt
---> FAILS if the length of command is greater than 65.
expect_str = "%s(.*)%s" % (command, self._default_prompt)
python expect
python expect
edited Aug 13 '16 at 15:06
Thomas Dickey
52k594164
52k594164
asked Aug 4 '15 at 17:10
Bangi
99117
99117
OP has asked same question on the pexpect development page over a month ago on GitHub, but no reply. github.com/pexpect/pexpect/issues/225
– steve
Aug 5 '15 at 6:32
add a comment |
OP has asked same question on the pexpect development page over a month ago on GitHub, but no reply. github.com/pexpect/pexpect/issues/225
– steve
Aug 5 '15 at 6:32
OP has asked same question on the pexpect development page over a month ago on GitHub, but no reply. github.com/pexpect/pexpect/issues/225
– steve
Aug 5 '15 at 6:32
OP has asked same question on the pexpect development page over a month ago on GitHub, but no reply. github.com/pexpect/pexpect/issues/225
– steve
Aug 5 '15 at 6:32
add a comment |
2 Answers
2
active
oldest
votes
There are 2 things wrong with your program. The last line is illegal:
ConnectToClient.expect(command, prompt)
is not valid, as expect takes as 2nd argument a timeout number, not a string.
The other problem is that in the call:
ConnectToClient.expect(prompt)
prompt
should be a regex (regular expression). You provide a string, which will be compiled into a regex. However, in a regex the character [
is special so you need to escape it. Either set
prompt = r'[root@user ~]#'
or instead of using .expect()
use .expect_exact()
which wants strings, not regexes.
add a comment |
By default pexpect windowsize is set to (24 rows and 80 coloumns)
in my case, when length of prompt and command exceeds 80 . I face this issue.
By changing the setwinsize(24,80) to setwinsize(24,150), It works fine.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f220177%2fpexpect-fails-to-match-command-if-greater-than-65-characters%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
There are 2 things wrong with your program. The last line is illegal:
ConnectToClient.expect(command, prompt)
is not valid, as expect takes as 2nd argument a timeout number, not a string.
The other problem is that in the call:
ConnectToClient.expect(prompt)
prompt
should be a regex (regular expression). You provide a string, which will be compiled into a regex. However, in a regex the character [
is special so you need to escape it. Either set
prompt = r'[root@user ~]#'
or instead of using .expect()
use .expect_exact()
which wants strings, not regexes.
add a comment |
There are 2 things wrong with your program. The last line is illegal:
ConnectToClient.expect(command, prompt)
is not valid, as expect takes as 2nd argument a timeout number, not a string.
The other problem is that in the call:
ConnectToClient.expect(prompt)
prompt
should be a regex (regular expression). You provide a string, which will be compiled into a regex. However, in a regex the character [
is special so you need to escape it. Either set
prompt = r'[root@user ~]#'
or instead of using .expect()
use .expect_exact()
which wants strings, not regexes.
add a comment |
There are 2 things wrong with your program. The last line is illegal:
ConnectToClient.expect(command, prompt)
is not valid, as expect takes as 2nd argument a timeout number, not a string.
The other problem is that in the call:
ConnectToClient.expect(prompt)
prompt
should be a regex (regular expression). You provide a string, which will be compiled into a regex. However, in a regex the character [
is special so you need to escape it. Either set
prompt = r'[root@user ~]#'
or instead of using .expect()
use .expect_exact()
which wants strings, not regexes.
There are 2 things wrong with your program. The last line is illegal:
ConnectToClient.expect(command, prompt)
is not valid, as expect takes as 2nd argument a timeout number, not a string.
The other problem is that in the call:
ConnectToClient.expect(prompt)
prompt
should be a regex (regular expression). You provide a string, which will be compiled into a regex. However, in a regex the character [
is special so you need to escape it. Either set
prompt = r'[root@user ~]#'
or instead of using .expect()
use .expect_exact()
which wants strings, not regexes.
answered Aug 5 '15 at 14:09
meuh
31.4k11854
31.4k11854
add a comment |
add a comment |
By default pexpect windowsize is set to (24 rows and 80 coloumns)
in my case, when length of prompt and command exceeds 80 . I face this issue.
By changing the setwinsize(24,80) to setwinsize(24,150), It works fine.
add a comment |
By default pexpect windowsize is set to (24 rows and 80 coloumns)
in my case, when length of prompt and command exceeds 80 . I face this issue.
By changing the setwinsize(24,80) to setwinsize(24,150), It works fine.
add a comment |
By default pexpect windowsize is set to (24 rows and 80 coloumns)
in my case, when length of prompt and command exceeds 80 . I face this issue.
By changing the setwinsize(24,80) to setwinsize(24,150), It works fine.
By default pexpect windowsize is set to (24 rows and 80 coloumns)
in my case, when length of prompt and command exceeds 80 . I face this issue.
By changing the setwinsize(24,80) to setwinsize(24,150), It works fine.
answered Aug 10 '15 at 19:38
Bangi
99117
99117
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f220177%2fpexpect-fails-to-match-command-if-greater-than-65-characters%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
OP has asked same question on the pexpect development page over a month ago on GitHub, but no reply. github.com/pexpect/pexpect/issues/225
– steve
Aug 5 '15 at 6:32