通过expect嵌套shell使用语句在shell内直接执行,任何这样可以实现更多的功能
#!/bin/bashuser="mrswhite"host="192.168.37.9"password="test20221007"/usr/bin/expect << EOFset time 20spawn ssh $user@$hostexpect {"*yes/no" { send "yes\r"; exp_continue }"*password:" { send "$password\r" }}expect "*#"send "pwd\r"expect "*#"send "df -h\r"expect "*#"send "exit\r"interactexpect eofEOF
文章插图
五、expect相关错误处理
1.invalid command name "/usr/bin/expect"
文章插图
解决方案:此时是使用bash脚本嵌套了expect代码,所以执行采用以下两种方式都可以
./expect_demo3.shsh expect_demo3.sh
文章插图
2.invalid command name ":" 转义问题
文章插图
解决方案:send里面的内容中的括号[]有问题,不能使用[],将其去除或者添加转义字符
send "cat 20221007.txt | awk -F : '{print $2}'"send "cat 20221007.txt | awk -F \[:\] '{print $2}'\r"
文章插图
推荐阅读
- 原神寻星之旅第七天怎么通关
- 花亦山心之月阴错阳差第二天怎么通关
- 咸鱼之王大乱斗怎么玩
- 猫之城乐园惊魂夜万圣节活动怎么玩
- 明日之后房子怎么悬空
- 宝石研物语:伊恩之石格蕾蒂怎么养成
- 宝石研物语:伊恩之石芋芋是谁
- 宝石研物语:伊恩之石芋芋技能是什么
- 宝石研物语:伊恩之石阴云密布关卡怎么过
- 东北往事之黑道风云20年第二部全集电视剧在线观看 东北黑道风云二十年