問題タブ [bash-completion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - Bashスクリプト内で「読み取り」を呼び出すときにオートコンプリートを取得する
Bashスクリプト内で、ユーザーが次のように入力したいくつかの変数を読み取っていますread
。
ここで、Bashシェルを使用しているときのように、ユーザーがディレクトリに入る必要があるときにオートコンプリートを取得する必要があります。したがって、ディレクトリの最初の文字を入力するときは、Tabキーを押すことでオートコンプリートできます。それは可能ですか?
bash - 変数展開なしのbashタブ補完?
これらの変数が my で定義されているとしましょうbashrc
:
コマンドラインで変数を使用すると、変数vim $i/edit_
TABが展開され、コマンドラインへの入力がvim /www/productX/subdomain_x/cgi-bin/internal/edit_
(現在のサイトに関係なく)なりTABTAB、可能な補完が得られます。
機能は問題ありません。変数の値だけでなく、毎回完全なパスを表示するのが煩わしい場合があります。
機能を損なうことなく、コマンド ラインで bash 変数を展開しない方法はありますか?
これを行っているのはbashの補完ですか?
望ましい結果は、$i
(視覚的に) その値に展開しないか$i
、フル パスではなく相対パスに展開することです。
bash - 等号と列挙可能なフラグ値を使用したBash補完
コマンドラインフラグと適切なフラグ値を提案するbash完了ルーチンを構築しようとしています。たとえば、以下のfstcomposeコマンドでは、競合ルーチンが最初にcompose_filter =フラグを提案し、次に[alt_sequence、auto、match、sequence]から可能な値を提案するようにします。
値のセットが関連付けられていないフラグの場合、競合他社がパスまたはファイルを提案するデフォルトモードにフォールバックするようにします。
私が直面している問題の1つは、=等号が個別のトークンとして扱われ、前のCOMP_WORDとして設定されていることです。前の=文字の前にフラグ全体を検出する手法はありますか?または、列挙可能な値を使用してこのタイプのフラグの補完を実装するためのより良い方法はありますか?以下は、私が使用している完了ルーチンのサンプルです。
macos - OSXターミナルチルダバッシュ完了
Linuxボックスで、入力すると
に完了し~/Desktop/
ます。
しかし、OSXターミナルでは、同じことを行うとに拡張され/Users/username/Desktop/
ます。
これは「ジャンプ」し、より多くのスペースを必要とするため、私にはかなり迷惑に見えます。どういうわけか以前の動作を取得できますか?
bash - マルチレベルバッシュ完了
私は現在、スクリプトで許可されているコマンドのリスト(「pbt」と呼ばれる)から単一のパラメーターを完了するBash完了ファイルを持っています。これは、機能するBashCompletionファイルです。
だから私が電話した場合
Bashは、許可されているすべてのコマンド(asadmin、clean、deploy)を完了しますが、これは問題ありません。
ここで、完了に「2番目の」レベルを追加したいと思います。たとえば、私が入力した場合
asadmin内でのみ使用可能なすべてのオプションを完了する必要があります-"environment"(これはbash完了ファイル内でも定義します)、たとえばpbt asadmin [start-domain|stop-domain]
、
たとえば、別のオプションのセットを完了する必要がありますpbt deploy [all|current]
。したがって、2番目のコマンドのオプションは、常に最初のコマンドに依存する必要があります。完了ファイルでそれを行うにはどうすればよいですか?
bash - 現在のセッションのBash完了スクリプト内で使用される変数をキャッシュする方法
Bash Completionファイル内で、外部スクリプトによって完了文字列を検索しています。これには時間がかかります(1〜2秒)。これらの文字列は、現在のシェルが実行されている間はほとんど同じままなので、キャッシュしたいと思います。次にBashの完了がトリガーされたときに、高価なルックアップの代わりにキャッシュされた文字列を使用して、完了するようにする必要があります。 2回目に実行するとすぐに。
完了ファイルで感じをつかむために、ここに完了ファイルの重要な部分があります:
シェルセッションの残りの部分でgetdeployablefilesの出力をキャッシュするにはどうすればよいですか?ここにある種のグローバル変数、または他のトリックが必要です。
解決:
goals
非ローカルにして、設定されているかどうかを尋ねるだけでした。最終的なスクリプト:
bash - bash ブレース展開を使用した cp copy コマンド
bash プロンプトで、このコピーを実行できます
cp file.txt test1.txt
しかし、file.txtをいくつかのファイルにコピーしようとすると
エラーが発生します
cp: ターゲット `test4.txt' はディレクトリではありません
bash - 既存の補完関数を使用したマルチレベル Bash 補完?
簡単な bash 関数を作成しました: http://shr.im/ionyse-notify
少し補完ファイルを追加したいと思います。
私は2つの興味深い機能を見つけました:
- _known_hosts
- _user_at_host
最初の引数については _known_hosts を使用して完了し、2 番目の引数については _user_at_host を使用して完了する必要があるとどのように言うことができますか?
ここに私が持っているものがありますが、うまくいきません。どうしたの ?
git - 「${1-}」対「$1」
git bash 補完のコード、具体的には関数__gitcomp
は、 のようなパラメーター展開を使用します"${1-}"
。これは に似ているよう"$1"
です。違いはなんですか?
また、これはbash
マニュアルのどこに記載されていますか?