在命令运行时执行循环

rom*_*ipp 1 linux bash loops while-loop

我想在命令(在这种情况下为ping)运行时创建一个循环(闪烁的LED).我正在使用Raspberry Pi(Raspbian)

while [ `nmap -p 80 example.com` ] # something like this
    do 
    echo "1">/sys/class/gpio/...
    sleep 0.2
    echo "0">/sys/class/gpio/...
    sleep 0.2
done
Run Code Online (Sandbox Code Playgroud)

Gil*_*not 7

我会怎么做:

any_command & _pid=$!
while kill &>/dev/null -0 $_pid; do
    echo "1">/sys/class/gpio/...
    sleep 0.2
    echo "0">/sys/class/gpio/...
    sleep 0.2
done
Run Code Online (Sandbox Code Playgroud)
  • kill -0 只测试pid是否存在=)
  • 该命令any_command在后台启动
  • & 把命令放在后台
  • $! 是最新的后台作业的pid的整数