
答え1
以下のスクリプトは、dmenu を起動し、選択内容を bash の stdout に返すようです。
#!/bin/bash
cat ~/.bash_history | dmenu -l 20
exit
質問の見出し「dmenu の出力をコマンドにパイプするにはどうしたらいいですか?」で Google 検索のトップに表示されたので、ここにたどり着きました。bash シェルで dmenu からの選択を実行する簡単なスクリプトを探していました。次のスクリプトは bash で動作するようです:
#!/bin/bash
read thing2execute <<< $(cat ~/.bash_history | dmenu -l 20)
$thing2execute
exit
これを行うための、より複雑な汎用スクリプトも suckless.org の次のサイトで入手できます。 https://tools.suckless.org/dmenu/scripts/dmenu_run_with_command_history/
答え2
グーグルで少し検索したところ、マイクの回答に似た、しかしもう少し簡単な解決策を見つけました。$()を使用してタスクを達成できます。
$(cat ~/.bash_history | dmenu -l 20)
これにより、基本的にdmenuからの出力を取得し、次のコマンドとして実行できるようになります。