|
|
本帖最后由 不点 于 2018-5-2 18:13 编辑
这几天在思考、权衡 “如何实现重定向” 的问题。
作为一个参考,Cling 本身有 “重定向” 的功能:
- [cling]% .1> /dev/null <----- 将标准输出重定向
- [cling]% ls <----- 果然输出结果看不见了
- [cling]% pwd <----- 再确认一次,这个输出结果也看不见了
- [cling]% .1> <----- 将标准输出恢复为原先的状况
- [cling]% ls <----- 此时输出结果出来了:
- a.out* build_deb_script/ clone.sh inst/ ladsh1.c ladsrc/ obj/ src/ src.diff.gz src.new/ src.tar.gz tsh.c
- build* cish@ flush.c jobs.c ladsh4.c Makefile pid.c src.diff src.diff.old src.old/ ssh_NOTICE.txt utils/
- [cling]% pwd <----- 确认一次,这个输出结果也有了:
- /home/user
- [cling]%
复制代码
【2018-05-02 更新】写了一个函数 redir() 来执行重定向。功能与上述 “.>” 元命令等价。举例说明它的用法:
执行 redir ("/dev/null", 1, 0); 之后,标准输出就重定向到 /dev/null 了。
执行 redir ("", 1, 0); 之后,标准输出就恢复原状了。
执行 redir ("/dev/null", 2, 0); 之后,标准错误就重定向到 /dev/null 了。
执行 redir ("", 2, 0); 之后,标准错误就恢复原状了。
执行 redir ("/dev/null", 3, 0); 之后,标准输出和标准错误就重定向到 /dev/null 了。
执行 redir ("", 3, 0); 之后,标准输出和标准错误就恢复原状了。
第三个参数是个 bool 值,当它为 true 时,表示 “追加”,当它为 false 时,表示 “覆盖”。
需要说明的是,cling 目前只有输出重定向功能,没有输入重定向功能。
|
|