变量不会按预期在函数中打印

时间:2012-06-15 21:35:04

标签: linux bash

我有这个:

我希望在f1()中我能够访问变量$pid。但我的脚本不会打印函数f1()中的值。你能解释一下吗?

#!/bin/sh

f1()
{
    echo in f1 pid is $pid
}


f2()
{
    sleep 1
    f1
}

f2 &

pid=$!

echo f2 bg pid is $pid

输出

f2 bg pid is 15095
in f1 pid is

1 个答案:

答案 0 :(得分:3)

在将pid分配到自己的进程后,您在父进程中分配f2,因此无法跨进程访问它。您可以$$访问自己的流程'pid。