next up previous contents
Next: read Up: 內建命令 Previous: eval與脫逃字元   Contents

exec

exec 會把''目前''的shell整個process拿掉,換成後面的命令,其實這就是用 exec()這個system call置換掉子行程的意義是一樣的。 最常看到是在 /.xinitrc這個scripts中置換掉成window manager。例如 exec twm。 所以如果你在shell中執行
      exec cmd
而cmd這個命令不存在就會回到login去,因為整個shell被換到cmd,但卻沒 有cmd這個執行檔。 所以執行程式的方法兩種是不一樣的
      $ exec cmd
      $ cmd
放在scripts的執行當然也不一樣。 不過exec在script有另一個相當重要的用途就是跟file descriptor的連結, 這個等下面再來討論。

Cyril Huang 2002-06-14