如何在 less 中显示某些 bash 命令的帮助(就像 man 那样)而不是将其打印到控制台

如何在 less 中显示某些 bash 命令的帮助(就像 man 那样)而不是将其打印到控制台

例如,没有trap命令手册页。跑步:

man trap

会给:

No manual entry for trap

跑步:

trap --help

将直接将帮助打印到 bash 控制台,而不使用lessmando 那样的方法。而且阻塞控制台输出也不方便。将帮助信息重定向到less:更加用户友好

trap --help | less

但每次都打印这么长的命令来获取帮助并不方便。如何更短地配置它(例如别名) - 例如,像使用它help2 traphelp2因为覆盖现有help命令行为可能是不正确的)或更好地更hp trap短地使用它(hp是帮助词的缩写意思)?

答案1

将以下函数添加到~/.bashrc

# Show help for command in less like man. Usage: hp cmd. For example:
# hp trap
hp() { "$@" --help | less; }

获取它以使其在打开的 bash 控制台中可见(或者只是重新打开控制台):

source ~/.bashrc

用法:

hp some_shell_command

使用示例:

hp trap

更新

hp() { "$1" --help | less; } 替换为 hp() { "$@" --help | less; } 支持带有脚本参数的命令,例如python test.py --help

我检查了以下情况(使用Python 3.8.10):

  • hp python # executed as: python --help | less
  • hp python test.py # executed as: python test.py --help | less
  • hp python "te st.py" # executed as: python "te st.py" --help | less
  • hp ./test # executed as: ./test.py --help | less
  • hp "./te st" # executed as: "./te st.py" --help | less

所有这些案例都有效。谢谢伊尔卡丘克里斯·戴维斯感谢他们的宝贵建议!

使用 test.py 和“te st.py”,内容相同:

#!/bin/python

# Python code here taken from the following answer on the question:
# How do I access command line arguments? [duplicate]
# https://stackoverflow.com/a/42929351/1455694
import argparse

parser = argparse.ArgumentParser("simple_example")
parser.add_argument("counter", help="An integer will be increased by 1 and printed.", type=int)
args = parser.parse_args()
print(args.counter + 1)

输出hp python "te st.py"

usage: simple_example [-h] counter

positional arguments:
  counter     An integer will be increased by 1 and printed.

optional arguments:
  -h, --help  show this help message and exit

help关于, man,命令的相关问题info


该解决方案是在问题的帮助下做出的:

相关内容