shell腳本無法執(zhí)行cd命令

在編寫shell腳本時遇到cd命令無法執(zhí)行

原腳本log.sh

if [[ $dbname = "logs" ]]
then
        echo "是別的是logs";
         cd /home/logs/;

執(zhí)行sh log.sh 之后發(fā)現(xiàn)并沒有進(jìn)入/home/logs,還是在原文件夾,搜索之后改為
source log.sh解決問題

錯誤原因:

  • 1.在shell在執(zhí)行腳本的時候,會創(chuàng)建一個子shell,并在子shell中逐條執(zhí)行腳本中的指令

  • 2.子shell會從父shell中繼承了環(huán)境變量,但是執(zhí)行后不會改變父shell的環(huán)境變量

  • 3.在子shell中的操作和環(huán)境變量不會影響父進(jìn)程,在執(zhí)行完shell后又回到了父進(jìn)程

解決原因:

  • source 命令可以在當(dāng)前的shell環(huán)境下執(zhí)行腳本,不會創(chuàng)建子shell ,直接影響父進(jìn)程。source命令可直接換成 “.”
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,696評論 0 5
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,313評論 0 10
  • Linux習(xí)慣問題: 在vim編輯時,按了ctrl + s后,再按ctrl + q就可以繼續(xù)執(zhí)行了。ctrl + ...
    光著腳的鞋閱讀 4,685評論 0 16
  • 什么是Shell ? ? 簡單來說Shell其實就是一個命令解釋器,而它的作用就是解釋并執(zhí)行用戶輸入的命令及程序。...
    Surpassme閱讀 2,832評論 1 24
  • 第 2 章 SHELL 基礎(chǔ)知識2.1 shell腳本我們在上面簡單介紹了一下什么是shell腳本,現(xiàn)在我們來進(jìn)一...
    LiWei_9e4b閱讀 1,641評論 0 0

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