您可以尝试以下命令:
yes 0 | script -c 'ispell text.txt' /dev/null
或者:
yes 1 | script -c 'aspell check text.txt' /dev/null
但请记住,即使是简单的事情,结果也可能很差:
$ echo The quik broown fox jmps over the laazy dogg > text.txt
$ yes 0 | script -c 'ispell text.txt' /dev/null
Script started, file is /dev/null
Script done, file is /dev/null
$ cat text.txt
The quick brown fox amps over the lazy dog
使用 aspell 似乎更糟,所以使用 ispell 可能会更好。
您需要该script
命令,因为某些命令(例如 ispell)不想编写脚本。通常,您会将 的输出通过管道yes 0
传输到命令以模拟一直按“0”键,但有些命令检测到正在编写脚本并拒绝合作:
$ yes 0 | ispell text.txt
Can't deal with non-interactive use yet.
幸运的是,他们可以被以下script
命令愚弄:
$ yes 0 | script -c 'ispell text.txt' /dev/null
Script started, file is /dev/null
Script done, file is /dev/null
您可以使用 /dev/null 以外的其他文件来记录输出:
$ yes 0 | script -c 'ispell text.txt' out.txt
Script started, file is out.txt
Script done, file is out.txt
$ cat out.txt
Script started on Tue 02 Feb 2016 09:58:09 PM CET
Script done on Tue 02 Feb 2016 09:58:09 PM CET