爲何system(”source ...”)沒作用呢?

在perl中想使用外部指令

system("ls"); 可用

但system ("source ...");沒有用

請問這是爲什麼呢?

如果不能使用的話,要怎麼作到 source 呢?

謝謝!

2 Answers

Rating
  • Anonymous
    1 decade ago
    Favorite Answer

    因為 ls 是一個真實存在的執行檔,

    故可以提供讓各種 shell 或 script 來呼叫執行,

    但是 source 指令是 csh / tcsh 的內建指令,

    所以 perl 無法呼叫執行。

    2007-01-10 15:25:40 補充:

    source 一般都是用於改變一些環境變數,

    如果你也是這種用途,

    要嘛全部用 perl,也嘛全部用 csh / tcsh 來做,

    會比較省事。

    因為環境變數是跟著 process 的,

    就算有辦法在 perl 中用 source,

    可能也需要透過 csh /tcsh 起另一個 process,來處理 source,

    所以並不會更改到 perl 的行程中環境變數。

  • Terry
    Lv 4
    1 decade ago

    ls 是指令,

    有可能 source 是 alias

Still have questions? Get your answers by asking now.