쉘 스크립트는 man 명령을 실행할 수 없습니다.

쉘 스크립트는 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

...등

명령 목록은 길지만 모두 시스템에 존재합니다.

또한 다음만 있는 경우:

예를 들어 ABRT-ACTION-ANALYZ를 시도하거나 AB를 시도하면 명령을 찾아서 작동하지만 물론 man 파일은 표시되지 않습니다.

왜 내가 man 파일을 다른 방식으로 보지 않는지 묻지 마십시오. 나는 이 스크립트를 작동시키는 방법을 묻는 것입니다.

이것이 인간의 길 문제일까요?

답변1

문제는 man 명령이 화면에 정보를 표시하는 방식으로 인해 발생할 수 있습니다. 맨페이지를 화면에 표시하면 이 문제를 해결할 수 있습니다.

man -P cat <command name>

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

}

관련 정보