那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

source命令是如何工作的

CHANBAEK ? 來源:TIAP ? 作者:TIAP ? 2023-05-14 15:57 ? 次閱讀

source 命令可以在當(dāng)前 shell 中執(zhí)行文件中的命令,也可以用于刷新環(huán)境變量。 不過老實(shí)說,它的主要用途就是用于刷新環(huán)境變量。 其語法格式如下所示:

source filename [options]

也可以用一個點(diǎn) . 來代替 source 命令:

. filename [options]

source 命令是如何工作的

這個命令的語法很簡單,但是要理解它,需要稍微了解一些 Linux 概念。 如果你是 Linux 新手,可能對于變量是什么只有一個比較模糊的概念。 不過沒關(guān)系,我們都是從這個階段過來的。

為了方便理解 source 命令,下面我們是對變量做一個簡短的解釋。

關(guān)于變量

你可以打開一個 bash 終端來創(chuàng)建一個新的變量,變量可以被認(rèn)為是一個占位符,可以用來指向一條信息(字母,數(shù)字或者符號等)。

比如,我們創(chuàng)建一個名為 name 的變量,將其賦值為 Christopher。

在 bash 中,命名變量的格式為:

variable_name=your_variable

注意,不要在等號 = 和文本之間添加空格。

$ name=Christopher
$ echo $name
Christopher

那么,如果我只鍵入變量名會怎樣呢? 看下面的例子:

$ echo name
name

如果忘記帶美元符號 $,比如上面的例子,bash 就會直接返回你輸入的文本。

變量的調(diào)用可以在任何調(diào)用的位置,所以我們也可以將其放在如下代碼中:

$ echo "Hello, $name. $name is a great name. It's good to meet you."
Hello, Christopher. Christopher is a great name. It's good to meet you.

變量可以幫助我們做很多事情,上述對變量的簡單介紹應(yīng)該可以讓大家了解它是如何工作的了。

環(huán)境變量與 shell 變量

理解 source 命令的另外一個關(guān)鍵問題,就是關(guān)于變量的持久性,這是用來思考 shell 變量和環(huán)境變量之間區(qū)別的一種簡單方法。

簡單地說,如果在終端 shell 中創(chuàng)建一個變量,那么一旦退出該 shell,它就會丟失。

相比之下,環(huán)境變量會持久性的保存在操作系統(tǒng)中,而且通常都是使用大寫字母。

其中一個例子,就是用戶名,操作系統(tǒng)中其變量名稱為 $USER。 如下所示:

$ echo $USER
christopher

上面我們是介紹了一些關(guān)于環(huán)境變量和 shell 變量的區(qū)別,那么這跟 source 命令有啥關(guān)系呢?

source 和 bash

如果你使用過 Linux,可能會遇到過這兩個命令,并且認(rèn)為他們的功能是一樣的。 畢竟 source 和 bash 都可以用來執(zhí)行腳本。

source 命令會在當(dāng)前 shell 中執(zhí)行,而 bash 會創(chuàng)建一個新的 shell 會話。這并不明顯,因?yàn)闆]有顯示新窗口。

下面我們創(chuàng)建一個名為 echo.sh 的腳本,內(nèi)容如下:

#! bin/bash


echo $USER
echo $name

然后在終端中給 name 賦值:

$ name=chris

接下來,我們分別使用 bash 和 source 命令來執(zhí)行一下這個腳本,看如下結(jié)果:

$ bash echo.sh 
christopher




$ source echo.sh 
christopher
chris
$ . echo.sh 
christopher
chris

正如上述結(jié)果,當(dāng)使用 bash 命令執(zhí)行腳本時,shell 變量 $name 并沒有被識別出來。

使用 source 命令刷新環(huán)境變量

source 還可以用于更新當(dāng)前 shell 中的環(huán)境變量,一個常見的例子是在當(dāng)前 shell 中更新 bash 配置文件。

用戶可能想要修改他們的 bash 配置文件,比如創(chuàng)建一個別名。通常,保存配置后,需要打開一個新的終端窗口才能看到更改生效。

$ source .bashrc

運(yùn)行此操作將刷新當(dāng)前 shell 中的設(shè)置,而不會強(qiáng)制您打開新的終端。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11345

    瀏覽量

    210395
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    696

    瀏覽量

    22109
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28466
  • Source
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    9855
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    366

    瀏覽量

    23447
收藏 人收藏

    評論

    相關(guān)推薦

    如何在Linux使用source命令加載變量與函數(shù)

    `source`命令用于在當(dāng)前Shell運(yùn)行文件中的命令source命令可用于將函數(shù),變量和配置文件加載當(dāng)前Shell。
    的頭像 發(fā)表于 12-05 16:19 ?3097次閱讀

    linux的source命令用法

    source filename . filename(中間有空格)source命令(從 C Shell 而來)是bash shell的內(nèi)置命令。點(diǎn)
    發(fā)表于 07-17 06:07

    LED Light Source

    This high power LED light source represents a viable alternative to halogen light sources.
    發(fā)表于 05-08 08:56 ?11次下載

    Signal Source Basics

    Slide 1A signal source produces sine waves.  This is the most basic definition of a signal
    發(fā)表于 07-10 11:09 ?11次下載

    精密電流源:Precision Current Source

    精密電流源:Precision Current SourceThe precision current source is shown in Figures 17, 18.
    發(fā)表于 05-16 16:08 ?5604次閱讀
    精密電流源:Precision Current <b class='flag-5'>Source</b>

    Source_Insight教程及技巧(大全)—最終整合版

    Source_Insight教程及技巧(大全)——最終整合版
    發(fā)表于 01-18 15:08 ?0次下載

    Source_Insight使用教程

    Source_Insight使用教程,好東西,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-18 15:08 ?19次下載

    (Source_Insight教程及技巧(大全)——最終整合版

    (Source_Insight教程及技巧(大全)——最終整合版
    發(fā)表于 10-19 09:18 ?0次下載
    (<b class='flag-5'>Source</b>_Insight教程及技巧(大全)——最終整合版

    Linux時間子系統(tǒng)之一:clock source(時鐘源)

    clock source用于為linux內(nèi)核提供一個時間基線,如果你用linux的date命令獲取當(dāng)前時間,內(nèi)核會讀取當(dāng)前的clock source,轉(zhuǎn)換并返回合適的時間單位給用戶空間。
    發(fā)表于 05-10 14:36 ?2004次閱讀

    ADICUP3029 Source Code Example

    ADICUP3029 Source Code Example
    發(fā)表于 01-29 13:53 ?0次下載
    ADICUP3029 <b class='flag-5'>Source</b> Code Example

    DC1996 CPLD Source Code

    DC1996 CPLD Source Code
    發(fā)表于 03-10 15:25 ?1次下載
    DC1996 CPLD <b class='flag-5'>Source</b> Code

    DC2071A CPLD Source Code

    DC2071A CPLD Source Code
    發(fā)表于 03-11 09:40 ?1次下載
    DC2071A CPLD <b class='flag-5'>Source</b> Code

    在Linux中傳輸文件文件夾的10個scp命令

    下面的命令將讀作 copy source_file_name進(jìn)入destination_folder在destination_host使用username account。
    的頭像 發(fā)表于 05-05 10:11 ?1713次閱讀

    你知道ping命令是如何工作的嗎?

    我們用來測試一臺機(jī)器與另一臺機(jī)器的網(wǎng)絡(luò)連通性一般會使用ping命令,那么你知道ping命令是如何工作的嗎?ping命令是基于ICMP協(xié)議工作
    的頭像 發(fā)表于 05-31 11:40 ?1128次閱讀
    你知道ping<b class='flag-5'>命令</b>是如何<b class='flag-5'>工作</b>的嗎?

    linux中source命令的用法

    在Linux中,source命令通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄。source命令可以用于讀取并執(zhí)行腳本文件中的
    的頭像 發(fā)表于 11-08 14:35 ?2442次閱讀
    百家乐庄家的胜率| 博彩e族论坛| 基础百家乐官网规则| 威尼斯人娱乐城网址是什么| 百家乐官网技论坛| 威尼斯人娱乐客户端| 百家乐官网最低投注| 赌博百家乐的玩法技巧和规则| 百家乐官网电子路单破解| 百家乐官网最好投注法是怎样的去哪儿能了解一下啊 | 全讯网vc8888.com| 百家乐官网赢退输进有哪些| 德州扑克比大小| 阴宅24向| 新利国际开户| 百家乐博彩安全吗| 百家乐官网视频表演| 临汾玩百家乐的人在那里找| 通州区| 海尔百家乐的玩法技巧和规则| 百家乐官网赌博外挂| 大发888boaicai| 真人百家乐官网网络游戏信誉怎么样 | 单机百家乐小游戏| 百家乐官网mediacorp| 大发888官网免费下载| 德州百家乐官网扑克牌| 宝马娱乐城| 网上百家乐大转轮| 百家乐官网游戏客户端| 澳门顶级赌场娱乐平台| 百家乐是否有规律| 罗甸县| 无锡百家乐的玩法技巧和规则| BB百家乐官网大转轮| 大发888是真的吗| 择日自学24| 博联百家乐官网游戏| 大发888娱乐城都有啥扑克牌游戏 大发888大发888娱乐城 | 沙龙百家乐官网娱乐平台 | 为什么百家乐官网玩家越来越多选择网上百家乐官网 |