如何正确编写能够利用bash';s自动完成机制
(请帮助我调整标题和标签。) 当我运行如何正确编写能够利用bash';s自动完成机制,bash,autocomplete,interactive,interactive-shell,Bash,Autocomplete,Interactive,Interactive Shell,(请帮助我调整标题和标签。) 当我运行connmanctl时,会得到不同的提示 enrico:~$ connmanctl connmanctl> 并且可以使用不同的命令,如服务,技术,连接 我想知道这东西是怎么工作的 我知道,一般来说,更改提示符只需更改变量PS1。但是,仅此一点(阅读“命令connmanctl更改PS1并返回)对命令行的功能没有任何影响(我仍然处于相同的bash过程中) 事实上,在我看来,可用命令被更改的事实似乎证明了connmanctl在提示符为connmanctl>
connmanctl
时,会得到不同的提示
enrico:~$ connmanctl
connmanctl>
并且可以使用不同的命令,如服务
,技术
,连接
我想知道这东西是怎么工作的
我知道,一般来说,更改提示符只需更改变量PS1
。但是,仅此一点(阅读“命令connmanctl
更改PS1
并返回)对命令行的功能没有任何影响(我仍然处于相同的bash
过程中)
事实上,在我看来,可用命令被更改的事实似乎证明了connmanctl
在提示符为connmanctl>
的所有时间都在运行,并且在运行connmanctl
时,一个while
循环被输入,其中包含一条read
语句,然后是一组命令,这些命令在访问输入
在我想象的后一个场景中,甚至不需要更改PS1
,因为connmantl>
行可以通过echo-n“connmantl>”
获得
这种好奇背后的原因是,我正在尝试为
connmantl
编写一个包装器。我已经编写了它,它可以按预期工作,只是我不知道如何正确设置自动完成功能,我认为为了做到这一点,我首先需要了解编写交互式shell脚本的正确方法是什么。当您在交互式终端中启动connmantl
而不带参数时,connmantl
从终端读取其命令。它正在运行,而不是bash
。当您带参数运行它时,它使用其命令行参数解释单个命令,然后返回bash。好的,@rici,这正是我的意思t当我编写connmanctl
时,提示一直在运行connmanctl>
。感谢您确认这一点。当您在交互式终端中无参数启动connmanctl
时,connmanctl
从终端读取其命令。它正在运行,而不是bash
。当您带参数运行它时,它使用其命令行参数解释单个命令,然后返回bash。好的,@rici,这正是我在编写connmanctl
时所说的意思,提示一直在运行connmanctl>
。感谢您确认这一点。