Reputation: 759
Here's part of an expect script
#/usr/bin/expect
spawn -noecho kwalletcli -f Passwords -e keyofmypassword
expect ".*"
set passwd $expect_out(buffer)
# do some thing
# ...
It read password from kwalletcli, and store in variable passwd
. So I can connect to the servers with this passwd
.
However, the output of kwalletcli is pass through expect and show on console. How can I hide that.
Upvotes: 29
Views: 35146
Reputation: 1
is with -stty and stty
stty -echo send_user "Password: " expect_user -re "(.*)\n" set password $expect_out(1,string) stty echo
Upvotes: 0
Reputation: 247250
Try adding
log_user 0
to your script. That should turn off the display to stdout.
If you want to turn it on again for the "do some thing" part of the program, re-enable it
log_user 1
Upvotes: 65
Reputation: 469
using this command:
exec >log 2>&1
you can forward your output to a file or you can pass it to dev/null
Upvotes: 1