2016-04-06 8 views
0

私はこのスクリプトを持っています。Linuxが期待しています。 "log_user 0"で最初の空白行を削除するには?

"log_user 0"はパスワードを尋ねませんが、空白の行は残ります。 この空白行を削除したいと思います。

スクリプト:実行の

#!/usr/bin/expect 

log_user 0 
set timeout 10 

if {[llength $argv] == 0} { 
    send_user "Usage: sshpwd \'password\' ssh ...\n" 
    exit 1 
} 

set cmd [lrange $argv 1 end] 
set pwd [lindex $argv 0] 

eval spawn $cmd 
expect { 
    "*yes/no*" { send "yes\r" ; exp_continue } 
    "*assword:" { send "$pwd\r"; interact; } 
} 

例(123前空行):スクリプトで

[email protected]:~$ ./sshpwd.exp password ssh [email protected] "(echo \"123\") && date '+%Y.%m.%d' && echo [TEST]" 

123 
2016.04.06 
[TEST] 

例私は、文字列を削除した場合、実行の "LOG_USER 0"(なし空欄123より前の行に 'spawn ...'、 'passw ...'がある):

[email protected]:~$ ./sshpwd.exp password ssh [email protected] "(echo \"123\") && date '+%Y.%m.%d' && echo [TEST]" 
spawn ssh [email protected] (echo "123") && date '+%Y.%m.%d' && echo [TEST] 
[email protected]'s password: 
123 
2016.04.06 
[TEST] 

私はこの出力を見てみたい:

[email protected]:~$ ./sshpwd.exp password ssh [email protected] "(echo \"123\") && date '+%Y.%m.%d' && echo [TEST]" 
123 
2016.04.06 
[TEST] 

答えて

0

spawn -noecho ...

また

、代わりのeval spawn -noecho $cmdを試してみて、それがこれを行うには、より安全です:残念ながら

spawn -noecho {*}$cmd 
+0

ありません。私はsed '1 d'でスクリプトを書きました。 –

関連する問題