在命令运行时执行循环

时间:2014-11-10 16:50:52

标签: 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

1 个答案:

答案 0 :(得分: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
  • kill -0只测试pid是否存在=)
  • 命令any_command在后​​台启动
  • &将命令置于后台
  • $!是最新后台工作的pid的整数