몇 가지 특정 명령에 대해 설명서를 반복하는 멋진 작은 스크립트를 찾았습니다. 최후의 수단으로 Google에서 검색하여 브라우저 창을 엽니다. 출처는 여기:http://www.commandlinefu.com/commands/view/7581/rtfm-function
rtfm() { help $@ || $@ -h || $@ --help || man $@ || xdg-open "http://www.google.com/search?q=$@"; }
문제는 내장 명령어와 부분적으로 일치하는 매뉴얼을 검색하면 실제 명령어 대신 매뉴얼이 찾아서 표시된다는 점이다. 예:
rtfm tr
trap
분명히 내가 찾고 있는 것이 아닌 명령에 대한 도움말을 찾아 표시합니다 .
help
그렇다면 내가 찾고 있는 명령과 정확히 일치하지 않는 명령을 찾는 것을 어떻게 방지할 수 있을까요 ? 이것이 가능합니까?
답변1
매개변수가 어떤 유형의 명령인지 테스트합니다. 이는 외부 명령을 숨길 수 있는 별칭과 기능을 올바르게 감지할 수 있는 추가 이점이 있습니다.
rtfm () {
declare x
for x; do
case $(type -t "$x") in
alias) alias "$x";;
keyword) LESS="$LESS+/^SHELL GRAMMAR" man bash;;
function) type "$x";;
builtin) help "$x";;
file)
man -S 1,8 "$x" ||
"$x" --help ||
xdg-open "http://www.google.com/search?q=$x";;
'') # no such command
man "$x" ||
xdg-open "http://www.google.com/search?q=$x";;
esac
done
}
답변2
help
이는 부분 일치에 작동하는 유일한 명령이므로 명령의 순서를 바꿀 수 있습니다 .
rtfm() { "$@" -h || "$@" --help || man "$@" ||
help "$@ "|| xdg-open "http://www.google.com/search?q=$@"; }