Bash:嵌套命令中的自动完成

Bash:嵌套命令中的自动完成

我正在使用 bash,我想做的是在嵌套命令中实现自动完成。例如,输入:

kill $(cat tmp/p|

接下来<tab>会产生

kill $(cat tmp/pids/

我想输入s<tab>)地址

kill $(cat tmp/pids/server.pid)

不幸的是,我的 bash 自动完成功能在这种特殊情况下不起作用。

有没有办法来解决这个问题?

这是我的 bash 版本:

GNU bash, version 4.4.23(1)-release (x86_64-apple-darwin17.5.0)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>

答案1

您必须使用 中的完成设置bash-completion。命令替换中的制表符补全不起作用。不过,如果没有这些,使用默认设置它也可以工作。注释掉你的来源/usr/local/etc/bash_completion(假设默认自制程序,给定版本字符串),启动一个新的 shell 并重试。

答案2

使用此命令从文件读取 PID 并终止进程:

pkill -F /path/to/file

相关内容