6. 命令的执行

在 Makefile 的规则中,每一行命令会在一个新的 Shell 中单独执行,这样不会相互影响。

如果你需要在一个 Shell 中执行多个命令。你需要将这些命名以分号或 &&|| 链接在一个命令行内。

示例:

all: 
    cd ..
    # 上面的 cd .. 不会影响到下面 echo 命令的执行。
    # 因为 echo 在一个新的 Shell 内执行.
    echo `pwd`

    # 如下的 cd .. 命令会改变 echo  的运行路径,因为他们在一行内。
    cd ..;echo `pwd`

    # cd .. 会影响 `echo` 命令的运行路径。
    cd .. && echo `pwd`

make 执行的结果为

weimingze@mzstudio:~$ make
cd ..
# 上面的 cd .. 不会影响到下面 echo 命令的执行。
# 因为 echo 在一个新的 Shell 内执行.
echo `pwd`
/home/weimingze
# 如下的 cd .. 命令会改变 echo  的运行路径,因为他们在一行内。
cd ..;echo `pwd`
/home
# Same as above
cd .. && echo `pwd`
/home