명명된 파이프가 있습니다.
> 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
█
█
이제 커서 모양을 에서 으로 변경하는 제어 시퀀스를 보내고 싶습니다 _
. 두 번째 터미널에서 다음을 실행합니다.
> printf '\e[4 q' > fifo
그러나 터미널을 읽으면 잘못된 문자가 보고됩니다("command"에 "c"가 누락되어 있음에 유의).
sh: ommand not found
노력했지만 \e
소용이 없었습니다. 나는 또한 echo를 사용해 보았지만 OSX를 사용하고 있으며 BSD에는 echo 옵션이 없습니다.\033
^[
x1B
echo
-e
적절하게 이스케이프된 제어 시퀀스를 어떻게 보내나요?
답변1
sh
fifo를 통해 이스케이프 시퀀스와 텍스트를 전송하려는 경우 이는 중복됩니다. 다음을 수행할 수 있습니다.
while true; do cat fifo; done