shell脚本:在后台运行一段代码而不定义新函数?

时间:2010-12-22 17:12:47

标签: shell background

有没有办法在后台运行代码块“内联”而不将块定义为函数?我想的是:

( do something; a bit more; finally this ) &
( more things; etc ...; ) &
wait
proceed ... 

我想这只是一行额外定义一次使用功能,然后立即使用它,但我很好奇,没有找到任何搜索。

3 个答案:

答案 0 :(得分:23)

#!/bin/sh
{
    echo "sleeping for 5 seconds"
    sleep 5
    echo "woke up"
} &
echo "waiting"
wait
echo "proceed"

输出

$ ./bgblock
waiting
sleeping for 5 seconds
woke up
proceed

答案 1 :(得分:1)

那不是(完全)真实的,SiegeX回复了Steven Lou 语法的原因 {cmd || cmd2}和 没用是因为应该这样: {cmd || cmd2;}&

答案 2 :(得分:0)

我可以用这样的东西来做:

#!/bin/sh
{
    echo "sleeping for 5 seconds"
    sleep 5
    echo "woke up"
} 1>/dev/null 2>&1 &