我正在使用 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