您的位置:首页 > 运维架构 > Shell

在linux应用程序使用system函数执行简单的shell交互命令的方法

2012-10-17 21:54 1061 查看
例如:

system(“tftp <<EOO\n\nquit\n\nEOO”);

“ <<EOO EOO” :  这个是here document ,就是一段特殊目的的代码块.   他使用 I/O 重定向的形式来将一个命令序列传递 到一个交互程序或者命令中,  比如 ftp, cat, 或者vim文本编辑器.  “<<EOO”是开始,“E00”为结束,它们必须成对出现,  “EOO”可以改为任何非shell命令的字符串

“quit” :这就是tftp中的命令,实际上"<<EOO" "EOO"之间可以执行任何tftp命令了,即可以进行简单的交互,  若要进行更复杂的交互,可以使用expect交互脚本语言




“\n ” :表示回车,这是因为在代码中,所以“\n”表示回车,  若在bash中执行tftp <<EOO\n\nquit\n\nEOO是不成功的,  因为在shell中无法敲出回车换行符,但可以用以下的方法进行执行:

            1. echo -e "tftp\nquit\n" | /bin/bash   这里使用了echo的转义字符进行转换回车换行

             2. tftp < file.txt         将file.txt当做tftp的标准输入, file.txt的内容是: quit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell system 脚本