linux運行程序有三種方法,分別是:
1、使文件具有可執(zhí)行權限,直接運行文件。
chmod命令用來修改文件的權限。+x是使文件擁有可執(zhí)行的權限。就如上面我們運行程序一樣。但是我們看到的結果與我們想象當中有一定的出入。
2、直接調用命令解釋器執(zhí)行程序。
如圖:
由于我們的解釋器是/bin/sh,所以,用sh命令解釋器來執(zhí)行程序。
(當前的工作路徑沒有發(fā)生變化)
(推薦教程:linux教程)
3、使用source執(zhí)行文件。
如圖:
(當前的工作路徑發(fā)生了變化)
在運行shell程序的三種方法中,前兩種方法的執(zhí)行過程如下:
(1)父進程接收到命令,然后發(fā)現不是內建命令,于是創(chuàng)建了一個和自己一樣的shell進程,來執(zhí)行這個外部命令
(2)這個shell子進程用/bin/sh取代自己,sh進程設置自己的運行環(huán)境變量,其中包括了$PWD變量。
(3)sh進程依次執(zhí)行內建命令cd和echo。在此過程中,sh進程(子進程)的環(huán)境變量被cd命令改變。
(4)子進程執(zhí)行完畢,就消亡了,一直在等待的父進程醒來,繼續(xù)接受命令。
分析:
父進程的當前目錄(環(huán)境變量)無法被子進程改變。但是,使用source執(zhí)行是shell腳本時不會創(chuàng)建子進程,而是在父進程中直接執(zhí)行。
相關視頻教程推薦:linux教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦