Shell 脚本无法运行 man 命令

Shell 脚本无法运行 man 命令

我有一个运行命令并截屏的脚本。我希望显示 man 文件并抓取它的屏幕截图。我的脚本仅适用于命令,但如果我在命令之前添加“man”,它只会给出错误“man 命令未找到”

try(){
   clear
   timeout 0.2 $1 
   re=$?
   echo trying $1>>log.txt
   echo result is $re>>log.txt
   if [ ! $re -eq 127 ]; then
       sleep 0.2
       import -window osboxes@osboxes:~/Downloads/Parser\ Project\Code/iteration\ 3 iter3/$1.png
       echo $1 captured>>log.txt
   fi
}
try man\ AB
try man\ ABRT\-ACTION\-ANALYZ
try man\ ABRT\-ACTION\-ANALYZ
try man\ ABRT\-ACTION\-ANALYZ

...ETC

命令列表很长,但它们都存在于系统中。

另外,如果我只有:

例如,尝试 ABRT-ACTION-ANALYZ 或尝试 AB,然后它会找到命令并有效,但当然不会显示 man 文件。

请不要问我为什么不以其他方式查看 man 文件 - 我问的是如何让这个脚本工作。

这可能是人路径问题吗?

答案1

该问题可能是由于 man 命令在屏幕上显示信息的方式造成的。您可以通过将手册页转储到屏幕来解决此问题:

man -P cat <command name>

IE

try man\ \-P\ cat\ ABRT\-ACTION\-ANALYZ

答案2

     try(){
  clear
timeout 0.2 man -P cat $1 
re=$?
echo trying $1>>log.txt
echo result is $re>>log.txt
if [ ! $re -eq 127 ]; then
    sleep 0.2
    import -window osboxes@osboxes:~/Downloads/Parser\  Project\Code/iteration\ 3 iter3/$1.png
    echo $1 captured>>log.txt
fi

}

相关内容