我有一个运行命令并截屏的脚本。我希望显示 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
}