相关疑难解决方法(0)

Bash/php - 为参数实现tab键自动完成的任何方法?

我有一个PHP命令行脚本,它将作业启动到作业服务器,作业名称是一个参数.作业名称是命名空间,例如Foo:Bar_Baz_JobName.有没有办法实现自动完成,比如如何键入文件名的前几个字母,然后按tab bash为你完成文件名.我知道它可以完成,因为tab-completion在ubuntu上使用apt-get工作,我只是不知道它是否可以在PHP中完成.

php linux bash

16
推荐指数
3
解决办法
3627
查看次数

使用子命令创建自动完成脚本

我正在尝试创建一个与鱼一起使用的自动完成脚本; 我正在为同一个程序移植一个bash完成脚本.

该方案有三个顶级的命令,比如foo,barbaz每个有一些子命令,只说a bc每个.

我所看到的是,顶层命令自动完成好了,所以如果我型f我得到foo自动完成,但随后如果我再次按Tab键,看看它的子命令是的,我看到foo,bar,baz,a,b,c和它应该只是a,b,c

我使用git完成脚本作为参考,因为它似乎正常工作.我也使用git flow脚本作为参考.

认为这是在git完成脚本中通过以下方式处理的:

function __fish_git_needs_command
  set cmd (commandline -opc)
  if [ (count $cmd) -eq 1 -a $cmd[1] = 'git' ]
    return 0
  end
  return 1
end
Run Code Online (Sandbox Code Playgroud)

这是有道理的,你只能使用完成,如果命令有一个arg,脚本本身; 如果你使用它作为条件(-n)来完成顶级命令的调用,我认为正确的事情会发生.

但是,我所看到的并非如此.我将该函数复制到我的脚本中,适当地更改了"git",并且没有任何运气.

修剪下来的脚本如下:

function __fish_prog_using_command
  set cmd (commandline -opc) …
Run Code Online (Sandbox Code Playgroud)

fish

10
推荐指数
1
解决办法
4495
查看次数

标签 统计

bash ×1

fish ×1

linux ×1

php ×1