例如:
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