日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell环境变量深入了解

發布時間:2024/3/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell环境变量深入了解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

Shell環境變量深入:加載流程測試

Shell登錄環境執行腳本文件語法

Shell非登錄環境變量執行腳本文件語法

?????? ? Shell環境變量深入:識別Shell環境類型

???????? Shell環境變量深入:詳細切換Shell環境


Shell環境變量深入:加載流程測試

目標

理解Shell環境變量的加載流程測試

能夠知道環境變量應該配置在哪里

切換Shell環境執行腳本文件介紹

在執行一個腳本文件時可以指定具體Shell環境進行執行腳本文件, 這個就是切換Shell環境執行腳本

Shell登錄環境執行腳本文件語法

sh/bash -l/--login 腳本文件

含義: 先加載Shell登錄環境流程初始化環境變量, 再執行腳本文件

Shell非登錄環境變量執行腳本文件語法

bash # 加載Shell非登錄環境 sh/bash 腳本文件 # 直接執行腳本文件

含義: 先執行加載Shell非登錄環境流程初始化環境變量, 再執行腳本文件

測試案例

需求

Shell登錄環境會運行/etc/profile

Shell非登錄環境會運行/.bashrc

在/etc/profile與/當前用戶/.bashrc文件分別設置環境變量數據,然后在shell腳本文件中輸出環境變量數據,最后切換不同環境執行shell腳本文件觀察驗證上面的流程運行

分析

  • 清理工作, 清理/etc/profile文件中VAR1環境變量進行刪除, 并且重載這個配置文件

  • 編輯/etc/profile, 增加環境變量VAR1=VAR1

  • 編輯/root/.bashrc, 增加環境變量VAR2=VAR2

  • 創建demo1.sh文件, 讀取環境變量數據進行打印

    # 輸出環境變量VAR1 # 輸出環境變量VAR2
  • 以Shell非登錄環境執行demo1.sh腳本文件, 觀察只會輸出VAR2, 不會輸出VAR1

  • 以Shell登錄環境執行demo1.sh腳本文件, 觀察會輸出VAR2和VAR1

  • 演示

    編輯/etc/profile文件

    gedit /etc/profile

    編輯添加如下內容,保存退出

    在root目錄下,編輯.bashrc文件

    gedit .bashrc

    編輯添加如下最后2行內容,保存退出

    創建文件demo1.sh

    touch demo1.sh

    編輯文件demo1.sh,添加如下內容

    #!/bin/bash echo $VAR1 echo $VAR2

    直接執行腳本文件

    bash demo1.sh

    直接執行腳本文件, 即沒有加載登錄Shell環境變量, 也沒有加載非登錄Shell環境變量

    先加載非登錄Shell環境變量, 然后執行腳本文件

    bash bash demo1.sh

    ?

    Shell非登錄環境會加載文件 當前用戶/.bashrc 的環境變量數據

    所以這里會輸出VAR2的環境變量數據

    先加載登錄Shell環境變量, 然后執行腳本文件

    bash -l demo1.sh

    Shell登錄環境會加載文件 etc/profile和當前用戶/.bashrc 的環境變量數據

    所以這里會輸出VAR1和VAR2的環境變量數據

    小結

    1、Shell環境變量初始化加載原理過程

    分類初始化環境變量過程執行文件順序
    shell登錄環境初始化過程/etc/profile--》/etc/profile.d/*.sh--》~/.bash_profile--》~/.bashrc--》/etc/bashrc
    shell非登錄環境初始化過程~/.bashrc--》/etc/bashrc--》/etc/profile.d/*.sh

    2、那么以到底將環境變量定義到哪里呢?/etc/profile與/etc/bashrc的區別?

    需要登錄的執行的shell腳本讀取的環境變量配置在:/etc/profile、/當前用戶/.bash_profile

    不需要登錄的用戶執行的shell腳本讀取的環境變量配置在:/當前用戶/.bashrc、/etc/bashrc


    Shell環境變量深入:識別Shell環境類型

    目標

    理解如何識別shell登錄環境與非登錄環境

    語法

    使用$0識別環境語法

    echo $0

    輸出 -bash 代表:shell登錄環境

    輸出 bash 代表: shell非登錄環境

    注意:這個 $0 環境變量如果用在子shell中(shell腳本文件)輸出Shell腳本本身的文件名

    bash命令語法

    bash

    bash命令:用于切換為Shell非登錄環境

    分析

    1、直接登錄系統為shell登錄環境輸出 $0 觀察輸出信息效果

    2、使用 bash 命令切換為shell非登錄環境輸出 $0 觀察輸出信息效果

    3、創建test.sh腳本文件,編輯添加輸出 $0 ,編程保存完成后執行test.sh腳本文件觀察輸出信息效果

    小結

    1、如何識別shell登錄環境與非登錄環境?

    $0 用于獲取當前Shell環境的類型, bash代表Shell非登錄環境, -bash 代表Shell登錄環境 # $0不可以在腳本文件中使用, 因為代表獲取腳本文件名字


    Shell環境變量深入:詳細切換Shell環境

    目標

    理解切換shell環境的命令

    切換shell環境命令介紹

  • 直接登錄加載shell登錄環境

  • su切換用戶加載Shell登錄與Shell非登錄環境

  • bash加載Shell登錄與Shell非登錄環境

  • 切換環境方式:bash切換

    命令

    語法1:

    bash # 加載【Shell非登錄環境】

    語法2:

    bash -l Shell腳本文件 / bash --login shell腳本文件 sh -l shell腳本文件 / sh --login shell腳本文件 # 先加載【Shell登錄環境】然后運行指定Shell腳本文件

    分析

    使用bash執行test.sh腳本文件,發生錯誤說明當前環境為Shell非登錄環境

    總結

    以上是生活随笔為你收集整理的Shell环境变量深入了解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。