⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mansearch

📁 制作2.6内核的CLFS时候使用的 man-1.6e.tar.gz包
💻
字号:
#!/bin/sh##  Interface to a glimpse search of the man pages.#  Michael Hamilton <michael@actrix.gen.nz>#  Small changes - aeb, 980109## Do we need lynxcgi URLs? For the moment our criterion is# 1) HTTP_USER_AGENT=Lynx*  and 2) HTTP_HOST is unset.AGENT="${HTTP_USER_AGENT-unknown}"case "$AGENT" in    Lynx*|lynx*)	HH="${HTTP_HOST-nohh}"	SED="s/%lynx //"	;;    *)	HH=nolynx	SED="/%lynx/d"	;;esacSERVER="${SERVER_NAME-localhost}"case "$HH" in    nohh)	CG="lynxcgi:/home/httpd/cgi-bin/man"	;;    *)	CG="http://$SERVER/cgi-bin/man"	;;esacQUOTE="'"export CG QUOTE SEDexec awk 'function removeopts(string) {  gsub(/^[ \t]/, "", string);	# Remove leading spaces  gsub(/[ \t]$/, "", string);	# Remove trailing spaces  gsub(/[ \t\\];/, ";", string);	# Remove spaces before ;  gsub(/[ \t];/, ",", string);  # Remove spaces before ,  while (match(string, /^-[FLBwk1-8]/)) {    if (match(string, /^-[FL]( |.)[^ \t]+[ \t]+/)) { # Option with arg      options = options " " substr(string, RSTART, RLENGTH);      string = substr(string, RSTART + RLENGTH);    }     else if (match(string, /^-[Bwk1-8][ \t]+/)) { # Option without arg      options = options " " substr(string, RSTART, RLENGTH);      string = substr(string, RSTART + RLENGTH);    }    else if (match(string, /^-[^ \t]/)) { # Remove it      string = substr(string, RSTART + RLENGTH);       }  }  return string;}BEGIN {  searchdocument = "/home/httpd/cgi-aux/man/mansearch.aux";  quote = ENVIRON["QUOTE"];  cgipath = ENVIRON["CG"];  sedcmd = ENVIRON["SED"];  truncate_at = 11;		# Single page display match limit.  glimpse_cmd = "glimpse -z -H /var/man2html -y -W -i "  for (i = 1; i < ARGC; i++) {    string = string " " ARGV[i];  }				# Have to be careful to single quote this				# string later.  gsub(/[^a-zA-Z0-9-_+ \t\/@%:;,$*|]/, " ", string);  string = removeopts(string);  gsub(/[^a-zA-Z0-9-_+ \t\/@%:,]/, " ", options);  if (!string) {    if (system("test -r " searchdocument ) != 0) {	print "Content-type: text/html\n\n";  	print "<head>";	print "<title>mansearch - file not found</title>";	print "</head>\n<body>";	print "Sorry - cannot read " searchdocument ".";	print "</body>";	exit;    }    system("sed " quote "s#%cg#" cgipath "#g;" sedcmd quote " " searchdocument );    exit;  }  print "Content-type: text/html";  print "";  print "<HTML>";  print "<HEAD>";  print "<TITLE>Manual Pages - Search Results: " string "</TITLE>";  print "</HEAD>";  print "<BODY>";    print "<H1>Manual Pages - Search Results</H1>";  print "<H2>Target text: " options " " string "</H2>";  print "<A HREF=\"" cgipath "/mansearch\">";  print "Perform another search";  print "</A><BR>";  print "<A HREF=\"" cgipath "/man2html\">";  print "Return to Main Contents";  print "</A>";  print "<HR>";    print "<DL>";				# Unless you like being hacked, the single				# forward quotes are most important.  cmd = glimpse_cmd " " options " " quote string quote " 2>/dev/null" ;  while ((cmd | getline matchline) > 0) {    if (split(matchline, part, ": ") == 1) {      continue;    }    else {      fullname = part[1];    }    if (fullname == "glimpse") {      print "<DT><B>"fullname"</B>:";    }    else if (fullname != last_fullname) {      mcount++;      tcount = 0;      last_fullname = fullname ;      last_text = "";      if (match(fullname, ".*/")) {	dirname = substr(fullname, 1, RLENGTH);	filename = substr(fullname, RLENGTH + 1);	if (dirname != last_dirname) {	  last_dirname = dirname;          print "</DL>";	  print "<H3>Location: " dirname "</H3>";	  print "<DL>";	}      }      else {	filename = fullname;      }      if (match(filename, /\.[^.]+$/)) {	ref = substr(filename, 1, RSTART - 1) "+" substr(filename, RSTART + 1);      }      else {	ref = filename;      }      print "<DT> <a href=\"" cgipath "/man2html?" fullname "\">";      textname = filename;      sub(/\.(gz)|Z|z$/, "", textname);      sub(/\./, "(", textname);      textname = textname ")";      print textname;      print "</A>";	    }    text = substr(matchline, length(fullname) + 2);    tcount++;    if (tcount < truncate_at) {      sub(/^ *.[^ ]+ /, "", text);      sub(/ +$/, "", text);      gsub(/\\f./,    "", text);      gsub(/\\&/,     "", text);      gsub(/\\/,      "", text);      print "<DD>" text;    }    else if (tcount == truncate_at) {      print "<DD> <I>...additional matches not shown.</I>";    }  }  print "</DL>";  if (mcount == 0) {    print "No matches found.";  }  else if (mcount == 1) {    print "<HR>\n<P>1 match found."  }  else {    print "<HR>\n<P>" mcount " matches found."  }  print "</BODY>";  print "</HTML>";  exit;    }' "$@"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -