linux腳本運(yùn)行的三種方法

首先進(jìn)入shell目錄創(chuàng)建一個(gè)創(chuàng)建一個(gè)簡單的腳本echo.sh


$cd ~/shell

$vi echo .sh

#!/bin/bash

cd /tmp

echo "hello world"

1.賦予腳本可執(zhí)行權(quán)限,直接執(zhí)行


$pwd

~/shell

$chmod +x echo.sh

$./echo.sh

hello world

$pwd

~/shell

2.使用解釋器解釋并執(zhí)行該腳本


$pwd

~/shell

$chmod -x echo.sh

$/bin/bash echo.sh

hello world

$pwd

~/shell

3.使用source命令解釋并執(zhí)行該腳本


$pwd

~/shell

$chmod -x echo.sh

$source echo.sh

hello world

$pwd

/tmp

分析:發(fā)現(xiàn)第1,2中和第三種的區(qū)別在于前兩種運(yùn)行完后所在目錄是~/shell,而第三種是/tmp。是什么原因呢?原來linux每啟動(dòng)一個(gè)終端都會(huì)為此終端開辟一個(gè)進(jìn)程,假設(shè)當(dāng)前的終端進(jìn)程為P進(jìn)程,當(dāng)我們只想前兩種方法時(shí),p進(jìn)程會(huì)fork一個(gè)子進(jìn)程(假設(shè)為C進(jìn)程),然后在C進(jìn)程中運(yùn)行echo腳本,C進(jìn)程和P進(jìn)程剛開始有一樣的執(zhí)行環(huán)境,也就是當(dāng)前目錄是~/shell,執(zhí)行完echo.sh后C進(jìn)程的當(dāng)前目錄會(huì)變成/tmp,然后執(zhí)行echo "hello world",執(zhí)行完該腳本C進(jìn)程會(huì)銷毀掉然后返回P進(jìn)程,但是P進(jìn)程的當(dāng)前目錄還是~/shell;source命令就不一樣了,source命令會(huì)讓P進(jìn)程自己解釋并執(zhí)行echo.sh,所以執(zhí)行完之后當(dāng)前目錄就是/tmp了。

阿里云雙十一云服務(wù)器拼團(tuán)活動(dòng),已經(jīng)打到最低價(jià)99元一年!有需要的可以考慮一波了!

https://m.aliyun.com/act/team1111/#/share?params=N.9g4CZ2TwSh.qilw7y0a

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡介】: Python 是一個(gè)...
    _小老虎_閱讀 6,313評(píng)論 0 10
  • Linux習(xí)慣問題: 在vim編輯時(shí),按了ctrl + s后,再按ctrl + q就可以繼續(xù)執(zhí)行了。ctrl + ...
    光著腳的鞋閱讀 4,685評(píng)論 0 16
  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多,請(qǐng)查閱幫助信息) 1、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,529評(píng)論 1 19
  • 第一章 1.Linux是一套免費(fèi)使用和自由傳播的類UNIX操作系統(tǒng),它可以基于Intel x86系列處理器以及Cy...
    yansicing閱讀 5,566評(píng)論 0 9
  • 1.compile javac -cp .:../build/:../../lib/jelly_blast.jar...
    it_tom閱讀 729評(píng)論 0 0

友情鏈接更多精彩內(nèi)容