/dev/null
通过网络将 PAGER 设置为建议的格式以防止每个命令都打印在 stdout 中,在 OS X 10.6 下会出现错误:
octave:1> PAGER('/dev/null');
octave:2> 1
sh: /dev/null: Permission denied
有任何解决这个问题的方法吗?
答案1
显示错误消息是因为 Octave 期望将 PAGER 设置为程序可以运行并将文本作为“stdin”输入。该/dev/null
文件显然不是程序,并且它没有“可执行”权限机器人;后者是导致权限错误的原因。
尝试/usr/bin/cat
或者/usr/bin/true
代替。
答案2
就像 grawity 上面所说的那样,Octave 确实希望将 PAGER 设置为一个程序,但是cat
却引发了错误,true
并引发了管道损坏警告。
因此,我们认为 Octave 只是将输出传输到 PAGER,并通过将有效程序的输出重定向到以下位置来解决这个问题/dev/null
:
PAGER('less > /dev/null')
PAGER('true > /dev/null')