名前付きパイプがあります。
> 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
^[
x1B
echo
-e
適切にエスケープされた制御シーケンスをどのように送信しますか?
答え1
sh
fifoを介してエスケープシーケンスとテキストを送信したい場合、これは重複します。次のことができます。
while true; do cat fifo; done