man -k . | fzf -e --tiebreak=begin | awk '{print $1}' | xargs man -Tpdf | zathura -
# searches for a man page and then outputs it as pdf to zathura
このコマンドを使用すると、ユーザーはマニュアルページを選択してそのページを表示できます。ユーザーが選択するのを待っている間、zathuraはブランキングを開始し、zathuraが入力を受け取ることを除いてうまくいきます。焦点をzathuraから端末に戻してから、zathuraに戻す必要があるのは本当に面倒です。
私はスクリプトに初めて触れたので、私が知らない解決策があるかもしれないと思いました。
そうでないことをお勧めしますifne
。
ベストアンサー1
これがパイプからパイプに同時にコマンドを実行する点です。
順次実行されるコマンドの場合は、無限のサイズのパイプが必要な場合、または出力を一時ファイルに保存する必要があります。
を使用すると、zsh
次のことができます。
zathura =(
man -k . |
fzf -e --tiebreak=begin |
awk '{print $1}' |
xargs -rd '\n' man -Tpdf
)
(デフォルトの解析モードが不要で、入力なしで実行したくないため、ここにGNU固有の-r
オプションが追加されました)。-d '\n'
xargs
man
ここでは、一度返される出力を=(cmd)
含めずに一時ファイルのパスに展開されます(3番目の形式)。cmd
cmd
プロセスの交換)に限定されますzsh
。コマンドが返されると、一時ファイルは自動的に削除されますzathura
。