명령을 실행하고 스크린샷을 찍는 스크립트가 있습니다. 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
}