我摆弄Linux命令“超时”:它只是在一个给定的秒后停止长时间运行的命令。 但是我想暂停一个命令,而不是一组命令。 我可以通过两种方式()和{;}对命令进行分组,但以下任何一种都不可行:
timeout 1 { sleep 2; echo something; } timeout 1 ( sleep 2; echo something )
我怎么可以做到这一点与分组?
timeout
不是一个shell实用程序,它不会执行shell风格的处理。 必须给予一个命令来执行。 但是,该命令可以有任意数量的参数。 幸运的是,你可以给它的一个命令是bash
:
timeout 1 bash -c '{ sleep 2; echo something; }'
当然,在这种形式下,大括号现在是多余的:
timeout 1 bash -c 'sleep 2; echo something'
在这里, bash
是timeout
执行的命令。 -c
和sleep 2; echo something
sleep 2; echo something
是这个命令的参数。
timeout 1 sh -c "sleep 2; echo something"