小编Ped*_*ara的帖子

每次写入输入时读取命名管道一次

我需要编写一个 bash 程序,该程序运行回显到它读取的命名管道的命令,但只有在发送命令时才能使其工作。它不断重复上一个命令,直到写入一个新命令。

那是:

  1. 执行 ./read_pipe.sh
  2. 它等待直到命令被回显pipe并读取它。
  3. 它执行一次命令。<- 什么不起作用。它永远执行它。
  4. 从第 2 步开始重复。

我的 read_pipe.sh

#!/bin/bash
pipe="mypipe"
if [ ! -p $pipe ]; then
  echo 'Creating pipe'
  mkfifo $pipe
fi

while true
do
  if read line <$pipe; then
    COMMAND=$(cat $pipe)
    echo "Running $COMMAND ..."
    # sh -c $COMMAND
  fi
done
Run Code Online (Sandbox Code Playgroud)

如果我cat "echo 'Hello World'" > mypipe的输出永远是这样:

Running "echo 'Hello World'" ...
Running "echo 'Hello World'" ...
Running "echo 'Hello World'" ...
Running "echo 'Hello World'" ...
... …
Run Code Online (Sandbox Code Playgroud)

fifo

9
推荐指数
2
解决办法
7875
查看次数

标签 统计

fifo ×1