shell交互式程序的几种写法

710阅读 0评论2015-10-28 sync_1521
分类:LINUX

方法一:expect 
不废话,直接上代码示例:
  1. #!/bin/bash
  2. log="/tmp/check_plat.log"
  3. cat /dev/null >$log
  4. /usr/bin/expect <<-EOF
  5.   set timeout 2
  6.   log_file $log
  7.   spawn /home/clouder/vs/script/xnode-console.sh
  8.   send "info\r"
  9.   expect eof
  10.   send "cluster\r"
  11.   expect eof
  12.   send "info\r"
  13.   expect eof
  14.   send "exit\r"
  15.   expect eof
  16. EOF
方法二:管道符
上面代码可以直接改写成如下代码,是不是简洁了很多
  1. (echo "info";echo "cluster";echo "info";echo "exit")| /home/clouder/vs/script/xnode-console.sh
方法三:直接接命令
如:
  1. /home/clouder/vs/script/xnode-console.sh "info"
总结:expect能在不同的情况下采取不同的策略,管道符这个就没得选择了,只能一路到底,而直接命令的貌似只能接一个命令


上一篇:系统性能调优技术实战
下一篇:nagios监控脚本如何避免标准输出影响到最终的Status Information