実行可能なコマンドと制御シーケンスを名前付きパイプにどのようにエコーしますか?

実行可能なコマンドと制御シーケンスを名前付きパイプにどのようにエコーしますか?

名前付きパイプがあります。

> ls -l
total 0
prw-r--r--  1 ivan  staff  0 Aug 24 08:32 fifo

端末で無限ループで読みました。

> while true; do sh -c "$(cat fifo)"; done

別の例では、パイプに実行可能なコマンドを作成します。

> echo 'rspec path/to/example_spec.rb' > fifo

私の最初の端末実行コマンドは次のとおりです。

> while true; do sh -c "$(cat fifo)"; done
.........

Finished in 0.00194 seconds (files took 0.10327 seconds to load)
9 examples, 0 failures

では、カーソルの外観をからに変更する制御シーケンスを送信したいと思います_。 2番目の端末で、次を実行します。

> printf '\e[4 q' > fifo

ただし、端末を読み取ると無効な文字が報告されます(「コマンド」に「c」が欠落していることに注意してください)。

sh: ommand not found

頑張ったけど役に立た\eなかった私もechoを試してみましたが、OSXを使用しており、BSDにはechoオプションはありません。\033^[x1Becho-e

適切にエスケープされた制御シーケンスをどのように送信しますか?

ベストアンサー1

shfifoを介してエスケープシーケンスとテキストを送信したい場合、これは重複します。次のことができます。

while true; do cat fifo; done

おすすめ記事