1
A
回答
1
外壳必须提供的文件是准备好写,这意味着它必须打开该文件的命令(如果需要创建它)在开始命令之前。一种选择是使用一个单独的进程,该进程从命令的标准错误中读取,并且只有在获得某些输入时才写入该文件。
mkfifo err
while read -r line; do
echo "$line" >> ssh.error
done < err & log_pid=$!
service ssh stop 2> err
kill "$log_pid"
rm err
这比仅仅删除空文件效率低。
2
外壳重定向不知道任何关于您正在运行的命令(它可能甚至可能不存在)。重定向(和文件创建)在之前发生命令运行。
这就是为什么你无法使用重定向读取和写入单个文件。 (即,printf 'contents\ncontents\n' > file; more file > file
截断/清空file
文件)。
1
你可以用它来删除该文件,如果它是空的
service ssh stop 2> ssh.error && [[ ! -s ssh.error ]] && rm ssh.error
相关问题
- 1. 猛砸重定向
- 2. 猛砸for循环一次迭代后停止没有错误
- 3. 当没有错误显示时从错误页面重定向
- 4. 重定向输出猛砸
- 5. Cakephp 2.2没有mod_rewrite重定向错误
- 6. 猛砸if语句语法错误
- 7. 猛砸如果......那么......语法错误
- 8. 猛砸语法错误:行7:文件
- 9. 猛砸嵌套的if-else错误
- 10. 猛砸语法错误 '(' Windows 7的
- 11. 猛砸CD ..没有返回
- 12. 猛砸代码错误意外的语法错误
- 13. 猛砸平脚本LCD错误信息的错误
- 14. 头重定向功能没有执行没有错误给出
- 15. 猛砸没有这样的文件或目录的错误(缓存模拟器)
- 16. 重定向到有错误的页面
- 17. Django的重定向没有反向匹配错误
- 18. 重定向错误
- 19. 错误:没有重复
- 20. 猛砸怎么什么也没有
- 21. 猛砸没有作品新用户
- 22. 猛砸了,当没有文件发现
- 23. 有没有错误?
- 24. 错误:`*`没有
- 25. 没有错误
- 26. 301重定向显示“该页没有正确重定向”错误
- 27. 类没有错误没有定义
- 28. Zingchart没有定义错误
- 29. 错误 - easeInBounce没有定义
- 30. 错误:没有类指定
这是正常行为。如果文件为空,请删除该文件。或者干脆忽略它。 http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – 2014-10-20 11:27:29