在 POSIX shell 中使用while 循环来处理文本通常被认为是不好的做法吗?
正如Stéphane Chazelas 所指出的,不使用 shell 循环的一些原因是概念、可靠性、易读性、性能和安全性。
这个答案解释了可靠性和易读性方面:
while IFS= read -r line <&3; do
printf '%s\n' "$line"
done 3< "$InputFile"
Run Code Online (Sandbox Code Playgroud)
为了性能,从文件或管道读取时,while循环和读取非常慢,因为内置的read shell一次读取一个字符。
怎么样的概念和安全性方面?
yes在 unix/linux 中有一个命令,它基本上无限地打印y到stdout. 它有什么意义,它有什么用?
在某些时候,我使用了一个 shell 命令,它不断地向标准输出发送一个非常短的文本字符串,但此时我不记得它的名字了。
它的名字很短,比如“abc”,对于快速创建一个充满文本的文件很有用。我记得我很惊讶我从未见过它,所以我猜它可能不是 Linux 内置命令。它实际上可能是一个 zsh shell 命令,但目前我无法访问 zsh shell。我试图用“compgen -c”在 bash 中找到它,但要么不存在,要么我想不起名字
我知道我可以编写它,但我很好奇是否有人知道它