Shell Script não pode executar o comando man

2

Eu tenho um script que executa comandos & tira uma captura de tela. Eu quero que o arquivo man exiba & Pegue uma captura de tela dele. Meu script funciona apenas para os comandos, mas se eu adicionar "man" antes do comando, ele apenas fornecerá um erro "man man not found"

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

A lista de comandos é bastante longa, mas todos eles existem no sistema.

Além disso, se eu tiver apenas:

tente ABRT-ACTION-ANALYZ ou tente AB por exemplo, então ele encontra os comandos & funciona, mas é claro que não mostra o arquivo man.

Por favor, não pergunte o meu porque eu não olho para os arquivos do homem de outra maneira - estou perguntando como fazer este script funcionar.

É possivelmente uma questão de caminho do homem?

    
por Gareth Thomas 05.01.2016 / 00:32

2 respostas

1

O problema pode ser devido à maneira como o comando man exibe informações na tela. Você pode contornar isso despejando a man page na tela com:

man -P cat <command name>

IE

try man\ \-P\ cat\ ABRT\-ACTION\-ANALYZ
    
por 05.01.2016 / 00:49
0
     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

}

    
por 07.01.2016 / 01:25