私は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
(バージョン文字列が与えられた場合はデフォルトのホームブレンドと見なされます)、新しいシェルを起動してもう一度やり直してください。
答え2
ファイルからPIDを読み取り、プロセスを終了するには、次のコマンドを使用します。
pkill -F /path/to/file