在 bash 中,我可以在以下命令行中以某种方式摆脱cat
部分(以及它带来的分支)吗?
cat >some_file
答案 0 :(得分:5)
在bash
中使用流程替换,以避免useless-use-of-cat
> file
while IFS= read -r line
do
printf "%s\n" "$line"
done < /dev/stdin >> file
要阅读表单stdin
并附加到运行中的file
,> file
会在开始阅读前截断文件内容。
包含来自Leon's comment的建议,以获得执行此操作的单行选项
while IFS= read -r line; do echo "$line"; done > file
答案 1 :(得分:2)
要仅使用bash工具,您可以执行以下操作:
printf '%s' "$(< infile)"
但两者都是:
这就是为什么猫作为工具存在的原因。