zoukankan      html  css  js  c++  java
  • 【shell】【demo】expect与send

    demo :expect与send

    例子:在 node1上 执行test.sh 来调用node2上的 get_java_home.sh

    1.在node1节点上 创建 test.sh

    vi test.sh

    添加以下内容:

    #!/bin/bash

    passW="AaBbCc"

    /usr/bin/expect < <-EOF

    spawn ssh root@10.10.10.21

    set timeout -1

    expect {

    "yes/no" {send "yes ";exp_continue}

    "assword:" {send "$passW "}

    }

    #识别 10.10.10.21节点上的 root用户的 $PS1 ,即命令行 "~ #",并键入相关命令

    expect "~ #"

    send "cd /tmp/test"

    send "sh get_java_home.sh > /tmp/test/get_java_home.log "

    send "exit/r"

    expect eof

    EOF

    2.在node2节点上 创建 get_java_home.sh

    mkdir -p /tmp/test

    cd /tmp/test

    vi get_java_home.sh

    添加以下内容:

    typeset  user_name=test

    typeset JAVA_HOME=`su - ${user_name} -c "env |grep -w JAVA_HOME"|awk -F= '{print $2}'`

    typeset java_path="${JAVA_HOME}/bin/java"

    echo JAVA_HOME=$JAVA_HOME,java_path=$java_path

    3.获取 node2节点 上 root用户 的环境变量 $PS1

    su - root

    echo $PS1

  • 相关阅读:
    python安装教程
    protobuf安装教程
    PlantUML安装教程
    题解-CF1140E Palindrome-less Arrays
    FST
    线段树
    题解-CF677D Vanya and Treasure
    最短路
    后缀自动机
    虚树
  • 原文地址:https://www.cnblogs.com/greenZ/p/10243223.html
Copyright © 2011-2022 走看看