Expect script connects with ssh but does not run commands
I need to write a script that runs on a PC with Centos 7 and connects to another PC with Centos 7 using ssh, execute a console command, for example "ls -la" and save the output of it to a file to be able to later analyze that output.
I have written the following EXPECT script:
ssh_connection.exp :
#!/usr/bin/expect -f
set timeout 120
spawn ssh root@129.0.0.10
expect "assword:"
send "PASSWORDr"
expect "prompt#"
sleep 5
puts "Executing ls -la"
send "ls -lar"
sleep 10
puts "Executing ps -af"
puts "ps -afr"
sleep 10
puts "Closing the ssh sessionr"
send "exitr"
This script connects correctly through ssh to the machine with IP = 129.0.0.10
and displays on the screen the messages that appears on "puts":
Executing ls -la
Executing ps -af
Closing the ssh session
However, it does not show the result of executing the commands I send with send:
ls -la
ps -af
What is wrong with this script?
How can I make the output of the previous commands saved in a file to be able to analyze it later with a bash script or a C program?
ssh command expect
bumped to the homepage by Community♦ 1 hour ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
I need to write a script that runs on a PC with Centos 7 and connects to another PC with Centos 7 using ssh, execute a console command, for example "ls -la" and save the output of it to a file to be able to later analyze that output.
I have written the following EXPECT script:
ssh_connection.exp :
#!/usr/bin/expect -f
set timeout 120
spawn ssh root@129.0.0.10
expect "assword:"
send "PASSWORDr"
expect "prompt#"
sleep 5
puts "Executing ls -la"
send "ls -lar"
sleep 10
puts "Executing ps -af"
puts "ps -afr"
sleep 10
puts "Closing the ssh sessionr"
send "exitr"
This script connects correctly through ssh to the machine with IP = 129.0.0.10
and displays on the screen the messages that appears on "puts":
Executing ls -la
Executing ps -af
Closing the ssh session
However, it does not show the result of executing the commands I send with send:
ls -la
ps -af
What is wrong with this script?
How can I make the output of the previous commands saved in a file to be able to analyze it later with a bash script or a C program?
ssh command expect
bumped to the homepage by Community♦ 1 hour ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
1
Just use a standard ssh command with ssh keys and a heredoc
– Raman Sailopal
Jul 27 '18 at 9:57
It seems you are overcomplicating stuff. You do not need to use expect to automate stuff via ssh.
– Rui F Ribeiro
Jul 27 '18 at 10:15
did you try a command likespawn ssh root@129.0.0.10 ls -la>Ls
?
– Hossein Vatani
Jul 27 '18 at 10:33
Run you script withexpect -d ssh_connection.exp
and see where the problems are. First thing I'd recommend is to replace all the sleeps withexpect "prompt#"
– glenn jackman
Jul 27 '18 at 15:23
add a comment |
I need to write a script that runs on a PC with Centos 7 and connects to another PC with Centos 7 using ssh, execute a console command, for example "ls -la" and save the output of it to a file to be able to later analyze that output.
I have written the following EXPECT script:
ssh_connection.exp :
#!/usr/bin/expect -f
set timeout 120
spawn ssh root@129.0.0.10
expect "assword:"
send "PASSWORDr"
expect "prompt#"
sleep 5
puts "Executing ls -la"
send "ls -lar"
sleep 10
puts "Executing ps -af"
puts "ps -afr"
sleep 10
puts "Closing the ssh sessionr"
send "exitr"
This script connects correctly through ssh to the machine with IP = 129.0.0.10
and displays on the screen the messages that appears on "puts":
Executing ls -la
Executing ps -af
Closing the ssh session
However, it does not show the result of executing the commands I send with send:
ls -la
ps -af
What is wrong with this script?
How can I make the output of the previous commands saved in a file to be able to analyze it later with a bash script or a C program?
ssh command expect
I need to write a script that runs on a PC with Centos 7 and connects to another PC with Centos 7 using ssh, execute a console command, for example "ls -la" and save the output of it to a file to be able to later analyze that output.
I have written the following EXPECT script:
ssh_connection.exp :
#!/usr/bin/expect -f
set timeout 120
spawn ssh root@129.0.0.10
expect "assword:"
send "PASSWORDr"
expect "prompt#"
sleep 5
puts "Executing ls -la"
send "ls -lar"
sleep 10
puts "Executing ps -af"
puts "ps -afr"
sleep 10
puts "Closing the ssh sessionr"
send "exitr"
This script connects correctly through ssh to the machine with IP = 129.0.0.10
and displays on the screen the messages that appears on "puts":
Executing ls -la
Executing ps -af
Closing the ssh session
However, it does not show the result of executing the commands I send with send:
ls -la
ps -af
What is wrong with this script?
How can I make the output of the previous commands saved in a file to be able to analyze it later with a bash script or a C program?
ssh command expect
ssh command expect
edited Jul 27 '18 at 9:42
andcoz
12.8k33139
12.8k33139
asked Jul 27 '18 at 9:41
jstechgjstechg
11
11
bumped to the homepage by Community♦ 1 hour ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 1 hour ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
1
Just use a standard ssh command with ssh keys and a heredoc
– Raman Sailopal
Jul 27 '18 at 9:57
It seems you are overcomplicating stuff. You do not need to use expect to automate stuff via ssh.
– Rui F Ribeiro
Jul 27 '18 at 10:15
did you try a command likespawn ssh root@129.0.0.10 ls -la>Ls
?
– Hossein Vatani
Jul 27 '18 at 10:33
Run you script withexpect -d ssh_connection.exp
and see where the problems are. First thing I'd recommend is to replace all the sleeps withexpect "prompt#"
– glenn jackman
Jul 27 '18 at 15:23
add a comment |
1
Just use a standard ssh command with ssh keys and a heredoc
– Raman Sailopal
Jul 27 '18 at 9:57
It seems you are overcomplicating stuff. You do not need to use expect to automate stuff via ssh.
– Rui F Ribeiro
Jul 27 '18 at 10:15
did you try a command likespawn ssh root@129.0.0.10 ls -la>Ls
?
– Hossein Vatani
Jul 27 '18 at 10:33
Run you script withexpect -d ssh_connection.exp
and see where the problems are. First thing I'd recommend is to replace all the sleeps withexpect "prompt#"
– glenn jackman
Jul 27 '18 at 15:23
1
1
Just use a standard ssh command with ssh keys and a heredoc
– Raman Sailopal
Jul 27 '18 at 9:57
Just use a standard ssh command with ssh keys and a heredoc
– Raman Sailopal
Jul 27 '18 at 9:57
It seems you are overcomplicating stuff. You do not need to use expect to automate stuff via ssh.
– Rui F Ribeiro
Jul 27 '18 at 10:15
It seems you are overcomplicating stuff. You do not need to use expect to automate stuff via ssh.
– Rui F Ribeiro
Jul 27 '18 at 10:15
did you try a command like
spawn ssh root@129.0.0.10 ls -la>Ls
?– Hossein Vatani
Jul 27 '18 at 10:33
did you try a command like
spawn ssh root@129.0.0.10 ls -la>Ls
?– Hossein Vatani
Jul 27 '18 at 10:33
Run you script with
expect -d ssh_connection.exp
and see where the problems are. First thing I'd recommend is to replace all the sleeps with expect "prompt#"
– glenn jackman
Jul 27 '18 at 15:23
Run you script with
expect -d ssh_connection.exp
and see where the problems are. First thing I'd recommend is to replace all the sleeps with expect "prompt#"
– glenn jackman
Jul 27 '18 at 15:23
add a comment |
2 Answers
2
active
oldest
votes
You don't need to use expect
to do this. The ssh
command can take additional arguments of commands you want to run via the SSH connection.
Step #1
Setup a SSH key pair (google it) and then copy the SSH key to the remote server. To do this I'd recommend using ssh-copy-id
. See my answer to this U&L Q&A titled: How to properly copy private keys from remote servers to my localmachine so I can connect using ssh.
Step #2
Now with the ability to SSH to a server in place using a key, your above problem turns into this:
$ ssh root@129.0.0.10 "ls -la; ps -af"
You can get fancy and use here documents (heredocs aka. here-docs) to further enhance this technique.
$ ssh root@129.0.0.10 <<EOF
> ls -la
> ps -af
> EOF
or put the commands in a file and pass them to ssh
:
$ ssh root@129.0.0.10 < my.cmds
Why my question here unix.stackexchange.com/questions/458801/… was marked as duplicate? I believe it's different as I want to get promoted to enter the username not just the password.
– Tak
Jul 27 '18 at 11:17
add a comment |
Thanks,
I have modified my script replacing the line:
spawn ssh root@129.0.0.10
with this other, as you tell me:
spawn ssh root@129.0.0.10 "ls -la; ps -af"
Now I see the commands output on the screen and I can redirect to a file.
Next I tried to adapt this script to execute a command on another machine that is a Cisco like switch (it is not Cisco, but it is compatible).
The script with which I connect to the switch using ssh is:
**#!/usr/bin/expect -f
set timeout 120
spawn ssh user@129.0.0.50 "show vlan 500"
expect "assword:"
send "PASSWORDr"
expect "prompt#"
sleep 5
puts "Closing the ssh sessionr"
send "exitr"**
>
This does not work on the switch and I get this error:
spawn ssh user@129.0.0.50 show vlan 501
user@129.0.0.50's password:
imish: invalid option -- 'c'
Try `imish --help' for more information.
send: spawn id exp6 not open
while executing
"send "exitr""
(file "./ssh_script_v3.exp" line 7)
>
So I must use the expect script that send the command using "send" :
!/usr/bin/expect
spawn ssh user@129.0.0.50
expect "assword:"
send "userr"
expect ">"
sleep 5
send "sh vlan 500r"
sleep 5
send "exitr"
>
Now I do not get any error, but nothing is shwon on the screen.
I have read that this happens because linux and UNIX systems automatically buffer their output when running non-interactively.
I think that Expect can make the programs think they are running interactively by means of "unbuffer", but I do not know how to use "unbuffer" with "send". My attemps to do this, do not work.
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%2f458799%2fexpect-script-connects-with-ssh-but-does-not-run-commands%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
You don't need to use expect
to do this. The ssh
command can take additional arguments of commands you want to run via the SSH connection.
Step #1
Setup a SSH key pair (google it) and then copy the SSH key to the remote server. To do this I'd recommend using ssh-copy-id
. See my answer to this U&L Q&A titled: How to properly copy private keys from remote servers to my localmachine so I can connect using ssh.
Step #2
Now with the ability to SSH to a server in place using a key, your above problem turns into this:
$ ssh root@129.0.0.10 "ls -la; ps -af"
You can get fancy and use here documents (heredocs aka. here-docs) to further enhance this technique.
$ ssh root@129.0.0.10 <<EOF
> ls -la
> ps -af
> EOF
or put the commands in a file and pass them to ssh
:
$ ssh root@129.0.0.10 < my.cmds
Why my question here unix.stackexchange.com/questions/458801/… was marked as duplicate? I believe it's different as I want to get promoted to enter the username not just the password.
– Tak
Jul 27 '18 at 11:17
add a comment |
You don't need to use expect
to do this. The ssh
command can take additional arguments of commands you want to run via the SSH connection.
Step #1
Setup a SSH key pair (google it) and then copy the SSH key to the remote server. To do this I'd recommend using ssh-copy-id
. See my answer to this U&L Q&A titled: How to properly copy private keys from remote servers to my localmachine so I can connect using ssh.
Step #2
Now with the ability to SSH to a server in place using a key, your above problem turns into this:
$ ssh root@129.0.0.10 "ls -la; ps -af"
You can get fancy and use here documents (heredocs aka. here-docs) to further enhance this technique.
$ ssh root@129.0.0.10 <<EOF
> ls -la
> ps -af
> EOF
or put the commands in a file and pass them to ssh
:
$ ssh root@129.0.0.10 < my.cmds
Why my question here unix.stackexchange.com/questions/458801/… was marked as duplicate? I believe it's different as I want to get promoted to enter the username not just the password.
– Tak
Jul 27 '18 at 11:17
add a comment |
You don't need to use expect
to do this. The ssh
command can take additional arguments of commands you want to run via the SSH connection.
Step #1
Setup a SSH key pair (google it) and then copy the SSH key to the remote server. To do this I'd recommend using ssh-copy-id
. See my answer to this U&L Q&A titled: How to properly copy private keys from remote servers to my localmachine so I can connect using ssh.
Step #2
Now with the ability to SSH to a server in place using a key, your above problem turns into this:
$ ssh root@129.0.0.10 "ls -la; ps -af"
You can get fancy and use here documents (heredocs aka. here-docs) to further enhance this technique.
$ ssh root@129.0.0.10 <<EOF
> ls -la
> ps -af
> EOF
or put the commands in a file and pass them to ssh
:
$ ssh root@129.0.0.10 < my.cmds
You don't need to use expect
to do this. The ssh
command can take additional arguments of commands you want to run via the SSH connection.
Step #1
Setup a SSH key pair (google it) and then copy the SSH key to the remote server. To do this I'd recommend using ssh-copy-id
. See my answer to this U&L Q&A titled: How to properly copy private keys from remote servers to my localmachine so I can connect using ssh.
Step #2
Now with the ability to SSH to a server in place using a key, your above problem turns into this:
$ ssh root@129.0.0.10 "ls -la; ps -af"
You can get fancy and use here documents (heredocs aka. here-docs) to further enhance this technique.
$ ssh root@129.0.0.10 <<EOF
> ls -la
> ps -af
> EOF
or put the commands in a file and pass them to ssh
:
$ ssh root@129.0.0.10 < my.cmds
answered Jul 27 '18 at 10:21
slm♦slm
254k71535687
254k71535687
Why my question here unix.stackexchange.com/questions/458801/… was marked as duplicate? I believe it's different as I want to get promoted to enter the username not just the password.
– Tak
Jul 27 '18 at 11:17
add a comment |
Why my question here unix.stackexchange.com/questions/458801/… was marked as duplicate? I believe it's different as I want to get promoted to enter the username not just the password.
– Tak
Jul 27 '18 at 11:17
Why my question here unix.stackexchange.com/questions/458801/… was marked as duplicate? I believe it's different as I want to get promoted to enter the username not just the password.
– Tak
Jul 27 '18 at 11:17
Why my question here unix.stackexchange.com/questions/458801/… was marked as duplicate? I believe it's different as I want to get promoted to enter the username not just the password.
– Tak
Jul 27 '18 at 11:17
add a comment |
Thanks,
I have modified my script replacing the line:
spawn ssh root@129.0.0.10
with this other, as you tell me:
spawn ssh root@129.0.0.10 "ls -la; ps -af"
Now I see the commands output on the screen and I can redirect to a file.
Next I tried to adapt this script to execute a command on another machine that is a Cisco like switch (it is not Cisco, but it is compatible).
The script with which I connect to the switch using ssh is:
**#!/usr/bin/expect -f
set timeout 120
spawn ssh user@129.0.0.50 "show vlan 500"
expect "assword:"
send "PASSWORDr"
expect "prompt#"
sleep 5
puts "Closing the ssh sessionr"
send "exitr"**
>
This does not work on the switch and I get this error:
spawn ssh user@129.0.0.50 show vlan 501
user@129.0.0.50's password:
imish: invalid option -- 'c'
Try `imish --help' for more information.
send: spawn id exp6 not open
while executing
"send "exitr""
(file "./ssh_script_v3.exp" line 7)
>
So I must use the expect script that send the command using "send" :
!/usr/bin/expect
spawn ssh user@129.0.0.50
expect "assword:"
send "userr"
expect ">"
sleep 5
send "sh vlan 500r"
sleep 5
send "exitr"
>
Now I do not get any error, but nothing is shwon on the screen.
I have read that this happens because linux and UNIX systems automatically buffer their output when running non-interactively.
I think that Expect can make the programs think they are running interactively by means of "unbuffer", but I do not know how to use "unbuffer" with "send". My attemps to do this, do not work.
add a comment |
Thanks,
I have modified my script replacing the line:
spawn ssh root@129.0.0.10
with this other, as you tell me:
spawn ssh root@129.0.0.10 "ls -la; ps -af"
Now I see the commands output on the screen and I can redirect to a file.
Next I tried to adapt this script to execute a command on another machine that is a Cisco like switch (it is not Cisco, but it is compatible).
The script with which I connect to the switch using ssh is:
**#!/usr/bin/expect -f
set timeout 120
spawn ssh user@129.0.0.50 "show vlan 500"
expect "assword:"
send "PASSWORDr"
expect "prompt#"
sleep 5
puts "Closing the ssh sessionr"
send "exitr"**
>
This does not work on the switch and I get this error:
spawn ssh user@129.0.0.50 show vlan 501
user@129.0.0.50's password:
imish: invalid option -- 'c'
Try `imish --help' for more information.
send: spawn id exp6 not open
while executing
"send "exitr""
(file "./ssh_script_v3.exp" line 7)
>
So I must use the expect script that send the command using "send" :
!/usr/bin/expect
spawn ssh user@129.0.0.50
expect "assword:"
send "userr"
expect ">"
sleep 5
send "sh vlan 500r"
sleep 5
send "exitr"
>
Now I do not get any error, but nothing is shwon on the screen.
I have read that this happens because linux and UNIX systems automatically buffer their output when running non-interactively.
I think that Expect can make the programs think they are running interactively by means of "unbuffer", but I do not know how to use "unbuffer" with "send". My attemps to do this, do not work.
add a comment |
Thanks,
I have modified my script replacing the line:
spawn ssh root@129.0.0.10
with this other, as you tell me:
spawn ssh root@129.0.0.10 "ls -la; ps -af"
Now I see the commands output on the screen and I can redirect to a file.
Next I tried to adapt this script to execute a command on another machine that is a Cisco like switch (it is not Cisco, but it is compatible).
The script with which I connect to the switch using ssh is:
**#!/usr/bin/expect -f
set timeout 120
spawn ssh user@129.0.0.50 "show vlan 500"
expect "assword:"
send "PASSWORDr"
expect "prompt#"
sleep 5
puts "Closing the ssh sessionr"
send "exitr"**
>
This does not work on the switch and I get this error:
spawn ssh user@129.0.0.50 show vlan 501
user@129.0.0.50's password:
imish: invalid option -- 'c'
Try `imish --help' for more information.
send: spawn id exp6 not open
while executing
"send "exitr""
(file "./ssh_script_v3.exp" line 7)
>
So I must use the expect script that send the command using "send" :
!/usr/bin/expect
spawn ssh user@129.0.0.50
expect "assword:"
send "userr"
expect ">"
sleep 5
send "sh vlan 500r"
sleep 5
send "exitr"
>
Now I do not get any error, but nothing is shwon on the screen.
I have read that this happens because linux and UNIX systems automatically buffer their output when running non-interactively.
I think that Expect can make the programs think they are running interactively by means of "unbuffer", but I do not know how to use "unbuffer" with "send". My attemps to do this, do not work.
Thanks,
I have modified my script replacing the line:
spawn ssh root@129.0.0.10
with this other, as you tell me:
spawn ssh root@129.0.0.10 "ls -la; ps -af"
Now I see the commands output on the screen and I can redirect to a file.
Next I tried to adapt this script to execute a command on another machine that is a Cisco like switch (it is not Cisco, but it is compatible).
The script with which I connect to the switch using ssh is:
**#!/usr/bin/expect -f
set timeout 120
spawn ssh user@129.0.0.50 "show vlan 500"
expect "assword:"
send "PASSWORDr"
expect "prompt#"
sleep 5
puts "Closing the ssh sessionr"
send "exitr"**
>
This does not work on the switch and I get this error:
spawn ssh user@129.0.0.50 show vlan 501
user@129.0.0.50's password:
imish: invalid option -- 'c'
Try `imish --help' for more information.
send: spawn id exp6 not open
while executing
"send "exitr""
(file "./ssh_script_v3.exp" line 7)
>
So I must use the expect script that send the command using "send" :
!/usr/bin/expect
spawn ssh user@129.0.0.50
expect "assword:"
send "userr"
expect ">"
sleep 5
send "sh vlan 500r"
sleep 5
send "exitr"
>
Now I do not get any error, but nothing is shwon on the screen.
I have read that this happens because linux and UNIX systems automatically buffer their output when running non-interactively.
I think that Expect can make the programs think they are running interactively by means of "unbuffer", but I do not know how to use "unbuffer" with "send". My attemps to do this, do not work.
answered Jul 27 '18 at 16:01
jstechgjstechg
11
11
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.
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%2f458799%2fexpect-script-connects-with-ssh-but-does-not-run-commands%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
1
Just use a standard ssh command with ssh keys and a heredoc
– Raman Sailopal
Jul 27 '18 at 9:57
It seems you are overcomplicating stuff. You do not need to use expect to automate stuff via ssh.
– Rui F Ribeiro
Jul 27 '18 at 10:15
did you try a command like
spawn ssh root@129.0.0.10 ls -la>Ls
?– Hossein Vatani
Jul 27 '18 at 10:33
Run you script with
expect -d ssh_connection.exp
and see where the problems are. First thing I'd recommend is to replace all the sleeps withexpect "prompt#"
– glenn jackman
Jul 27 '18 at 15:23