我需要编写一个 bash 程序,该程序运行回显到它读取的命名管道的命令,但只有在发送命令时才能使其工作。它不断重复上一个命令,直到写入一个新命令。
那是:
./read_pipe.sh
pipe
并读取它。我的 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 ×1