![]() |
1
5
如果你想完成更棒的任务,那就看看 zsh . 它与bash非常相似,并采用了ksh、tcsh等的一些优秀特性,还修复了一些恼人的bash bug。 它可以做一些非常酷的事情,包括完成scp的远程文件名(如果您设置了基于密钥的身份验证)和标签complete时的迷你文档 例如,前几天我在“jar”上的标签让我惊喜不已:
|
![]() |
2
2
这是bash的官方主页: Bash Reference Manual: Programmable Completion |
![]() |
3
2
在OS X上,您可以轻松地安装一组预定义的
|
![]() |
4
1
这是bash的一个标准特性: programmable completion . |
![]() |
5
1
Bash不支持参数完成: http://www.debian-administration.org/articles/316 |
![]() |
6
1
Bash completion是非常可定制的,可以显示常用命令的选项。配置文件只需要指定。在Debian中,bash completion附带一组配置文件,这些文件完成不同命令的选项。 例如:
|
![]() |
7
0
我不喜欢这里的任何答案,我想提供几个具体的例子。 我有时有一些目录有一个共同的前缀,希望能够cd到他们完成,只要键入唯一的部分目录名,这将是在中间或结束的目录名。 我可以编写一个完成函数来完成这个任务:
所以现在在我的提示下,我可以这样做:
它会自动完成:
您可能希望使用可编程完成的另一个原因是,如果您编写脚本并希望能够为您列出或完成选项。这一页有一些很好的例子: http://fahdshariff.blogspot.com/2011/04/writing-your-own-bash-completion.html 下面是一个例子: 假设我有一个叫做listanimals的脚本。我可以写一个完成函数来帮助填写选项
现在我可以做到:
它将自动填写:
然后我可以这样做:
我相信你能解决剩下的问题。这是一个有效的示例,因此如果您想尝试它,只需将它复制/粘贴到一个文件(例如sample.sh)中,并将其源代码保存在bash中
希望有人会觉得这很有用,因为我觉得很难搞清楚。 |