例如,这不起作用:
man(){ man -H "$1" & }
但我需要参数,因为我希望命令以&符结束。
这不起作用:
man(){ firefox & man -H }
如果firefox进程由man和man终止,我不希望firefox关闭。
答案 0 :(得分:3)
参数不是问题。 递归是(最严重的直接)问题。
当你有一个名为man
的函数man
时,它会自行调用。你正在开始一组无限的背景贝壳。使用command
将阻止该递归,因为它绕过了函数查找。
我 建议对参数传递做出的一个更改是使用"$@"
,因此完整的参数集不仅会传递给第一个:
man() { command man -H "$@" & }
顺便说一句,请注意,至少对于Apple使用的BSD实现,man -H
期望可以将HTML转换为文本的程序的名称是紧随其后的参数。例如,如果您认为man -H bash &
将在后台的Web浏览器中启动bash手册页...好吧,在您的平台上可能就是这种情况,但它并非普遍适用。