LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 935|回复: 2

here document的问题

[复制链接]
发表于 2006-1-9 15:28:05 | 显示全部楼层 |阅读模式
[HTML]debian:/dev/shm# vi test.sh <<EOF
> i
> hello
>^[
> ZZ
> EOF
ex/vi: Vi's standard input and output must be a terminal
[/HTML]

这个到底是为什么?
发表于 2006-1-9 16:53:22 | 显示全部楼层
出错信息已经显示得很清楚了

vi的标准输出和输入都必须是一个终端,here document已经由SHELL对标准输入做了处理,即不是默认的终端设备,之后,SHELL再fork一个vi进程,vi是子进程,继承了SHELL,即是父进程的文件描述符(更改后的标准输入的描述符),vi进程运行检测到这一点,然后就出错退出。

所以像管道,重定向标准输入输出的命令行,VI都不能参与
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-9 19:43:28 | 显示全部楼层
有些明白了,谢谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表