コマンドを実行してスクリーンショットを撮るスクリプトがあります。 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
}