【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 [email protected]
set timeout -1
expect {
"yes/no" {send "yes\r";exp_continue}
"assword:" {send "$passW\r"}
}
#識别 10.10.10.21節點上的 root使用者的 $PS1 ,即指令行 "~ #",并鍵入相關指令
expect "~ #"
send "cd /tmp/test"
send "sh get_java_home.sh > /tmp/test/get_java_home.log\r"
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
posted on 2019-01-09 11:17 綠Z 閱讀( ...) 評論( ...) 編輯 收藏
轉載于:https://www.cnblogs.com/greenZ/p/10243223.html