スクリプト機能でシェルを変更する

スクリプト機能でシェルを変更する

メインシェルとしてZSHがありますが、.zshrcビルドを更新するときに私の開発ボックスにsshを簡単に接続できるようにExpectを使用してsshコマンドを設定したいと思います(実際にはセキュリティは必要ありません。これはすべてオンです)。イントラネット)の一種)。sshシェルを使用してパスワードを渡すことができます!#/usr/bin/expect

これはコーシャですか?

password=sick_awesome_password6969
function expect_ssh () {
# I enter expect shell at the beginning of this function <==
#!/usr/bin/expect

set timeout 20

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

eval spawn $cmd
expect "password:"
send "$password\r";
interact
exit 0 # Then escape from it ? <==
}

default_boxssh_subnet=1
function bosh () {
    if [[ ! $1 == *"."* ]];
    then
        # ssh [email protected].$default_boxssh_subnet.$1
        expect_ssh 10.10.$default_boxssh_subnet.$1
    else
        # ssh [email protected].$1
        expect_ssh 10.10.$default_boxssh_subnet.$1
    fi
}

ベストアンサー1

すでに述べたようにチョロバ、このshebangは一般的なコメント行になりました。

代わりに別の Expect スクリプトファイルを使用できます。トレドック:

function expect_ssh () {
expect <<'EOF'
set timeout 20

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

eval spawn $cmd
expect "password:"
send "$password\r";
interact
exit 0 # Then escape from it ? <==
EOF
}

おすすめ記事