【linux】自己动手写读取manpage的man程序

我的测试机真的是有很多问题。之前safe无法安装,staf安装也不成功。现在发现man也不能用……

原来是

man man fgets: No such file or directory Error reading man page /usr/share/man/en/man1/man.1.gz No manual entry for man  

现在是

#man man Error executing formatting or display command. System command (cd /home/wulongfei/tool/man-pages-3.28 && (echo ".ll 11.8i"; echo ".pl 1100i"; /bin/cat '/home/wulongfei/tool/man-pages-3.28/man1/man.1'; echo ".///""; echo ".pl /n(nlu+10") | /usr/bin/gtbl | nroff --legacy ISO-8859-1 -man -rLL=129n -rLT=129n 2>/dev/null | /usr/bin/less -iRs) exited with status 32512. No manual entry for man

在百度谷歌无果之后,不胜其扰,打算自己来写man程序读取manpage。首先下载了最新的man-pages-3.32.tar.bz2。发现man1中的只有三个manpage,于是和本地原有的manpage进行了合并,之后有了man[0-9]三个文件夹。man.sh的代码如下:

#!/bin/bash cd /home/wulongfei/tool/man-pages-3.28 if [ $# -lt 1 ]; then echo "what do you want to man? :)"; exit fi if [ $# -gt 2 ]; then echo "please man one thing at a time:("; exit fi if [ $# -eq 1 ]; then index=1; tofind=$1; fi if [ $# -eq 2 ]; then index=$1; tofind=$2; fi echo "************************" echo $index,$tofind; echo "************************" while [ $index -le 9 ] do if [ -f man$index/$tofind.$index ];then # echo ".ll 11.8i"; # echo ".pl 1100i"; # cat "man$index/$tofind.$index"; # echo ".///""; # echo ".pl /n(nlu+10" | /usr/bin/gtbl | nroff --legacy ISO-8859-1 -man -rLL=129n -rLT=129n 2>/dev/null | /usr/bin/less -iRs; (echo ".ll 11.8i"; echo ".pl 1100i";/bin/cat "/home/wulongfei/tool/man-pages-3.28/man$index/$tofind.$index";echo ".///""; echo ".pl /n(nlu+10") | /usr/bin/gtbl | nroff --legacy ISO-8859-1 -man -rLL=129n -rLT=129n 2>/dev/null | /usr/bin/less -iRs exit fi let index=index+1; echo "************************" echo $index; echo "************************" done echo "no manual for $tofind"; 

我想你们也看到了,关键的代码我是抄袭的报错信息……⊙﹏⊙我也不太懂……

为了输入不改变原有的输入习惯(即输入man而不是man.sh),我将man.sh改为man,并复制到PATH中的最前面(保证比系统原有的man先搜索到),可问题依旧。后来想到使用alias,问题解决。即

vim ~/.bash_profile #加入下面一句话 alias man=~/man.sh#即你存放man.sh的路径 #然后 source ~/.bash_profile  

然后就可以像以前一样man咯!

 

PS:出现问题的原因依然不太明白,google的时候似乎说升级内核可能出现这个问题。大家有知道的告诉我啊~

你可能感兴趣的:(linux,command,Google,百度,vim,Path)