gvl*_*sov 3 bash bash-completion
有一种方法可以在bash中运行命令,如下所示:
echo ls | bash
Run Code Online (Sandbox Code Playgroud)
我需要对bash完成进行单元测试,如果有一种方法可以通过这种方式将按钮传递给Tab以完成命令,那我就很烦人了,如下所示:
# This doesn't work, but I think you get the idea
echo chromi$'\t' | bash
Run Code Online (Sandbox Code Playgroud)
那可能吗?或者也许你可以建议另一种单元测试bash完成的方法?
看一下compgen
内置命令,它可以让你以与bash相同的方式生成完成匹配.
$ compgen -c unam
uname
Run Code Online (Sandbox Code Playgroud)
或者,以交互模式运行bash -i
.然后它将执行Tab-completion.
$ bash -i <<< $'unam\t'
$ bash -i <<< $'unam\t'
$ uname
Darwin
$ exit
Run Code Online (Sandbox Code Playgroud)