自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用 Linux source 從文件中讀取和執(zhí)行命令

系統(tǒng) Linux
要使用 source 命令,您首先需要?jiǎng)?chuàng)建一個(gè)示

source 是一個(gè)方便的內(nèi)置 shell 命令,它接受參數(shù)、解析腳本中的命令并在 shell 環(huán)境中執(zhí)行它們。該文件的內(nèi)容由 source 讀取,然后傳遞給工具命令語(yǔ)言 (TCL) 解釋器,該解釋器執(zhí)行命令。

現(xiàn)在讓我們學(xué)習(xí)如何在 Linux 上使用 source 執(zhí)行命令和使用 shell 環(huán)境,并簡(jiǎn)要說(shuō)明它與 bash 命令的區(qū)別。

使用 source 執(zhí)行文件中的命令

要使用 source 命令,您首先需要?jiǎng)?chuàng)建一個(gè)示例文件并使用一些 shell 命令填充它。首先使用 touch 命令創(chuàng)建一個(gè)新文件。在您選擇的文本編輯器中打開(kāi)文件并編寫(xiě)一些基本的 shell 命令。

touch linuxmi.txt
vim linuxmi.txt

圖片

# 在文本文件中寫(xiě)入命令:
echo "Hello!Linux迷 linuxmi.com"
pwd
ls

# 使用Source語(yǔ)法或點(diǎn)語(yǔ)法
. linuxmi.txt
source linuxmi.txt

寫(xiě)出文本文件并繼續(xù)將其作為參數(shù)傳遞給 source 命令。系統(tǒng)將執(zhí)行文件中的命令并返回輸出。

現(xiàn)在您已經(jīng)了解了如何使用 source 的基礎(chǔ)知識(shí),讓我們嘗試更改 Bash shell 環(huán)境。但是,在繼續(xù)之前,您必須對(duì)Linux 中的環(huán)境變量有基本的了解。

使用 source 命令更新 Bash Shell 環(huán)境

在 Linux 上,環(huán)境變量是繼承但不可變的。如果您執(zhí)行修改環(huán)境變量 $TEST 的 Bash shell 腳本,該腳本將生成一個(gè)新的分叉 shell 進(jìn)程,并且 $TEST 的修改將在其中而不是原始 Bash 環(huán)境中進(jìn)行。

子進(jìn)程將無(wú)法修改父進(jìn)程的環(huán)境。它只能修改自己的環(huán)境。讓我們用一個(gè)實(shí)際的例子來(lái)理解這一點(diǎn):

export TEST="deb"
vim linuxmi

圖片

# 在文件中鍵入這些命令
export TEST="bed"
echo $TEST

# 寫(xiě)文件,使其可執(zhí)行,然后執(zhí)行它
chmod +x linuxmi
./linuxmi # 這將返回 "bed"
echo $TEST # 這將返回 "deb"

圖片

這就是 source 命令發(fā)揮作用的地方。使用 source 命令,您可以在相同的 shell 環(huán)境中執(zhí)行腳本,否則會(huì)被分叉。因此,如果您獲取修改環(huán)境變量的腳本,它將對(duì) Bash shell 環(huán)境進(jìn)行更改。

要對(duì)其進(jìn)行測(cè)試,請(qǐng)將上面代碼框中的命令寫(xiě)入一個(gè)新文件并使用 source 命令而不是使其可執(zhí)行。

# 創(chuàng)建一個(gè)新文件并編輯它
vim linux
.linux
echo $TEST # 運(yùn)行后返回 "bed"

圖片

如您所見(jiàn),使用 source 命令,您可以更新父進(jìn)程的環(huán)境變量。這是 source 命令的主要用例,即修改父環(huán)境。

圖片

這就是使用 source 命令更新 Bash shell 環(huán)境所需的所有步驟。

Linux bash 和 source 命令之間的區(qū)別

Linux bash 和 source 命令的區(qū)別在于,當(dāng)你用 bash 命令執(zhí)行腳本時(shí),它告訴 Linux 內(nèi)核創(chuàng)建一個(gè)新的 Bash 進(jìn)程來(lái)讀取和執(zhí)行腳本,將輸出復(fù)制到原來(lái)的 shell 進(jìn)程中,并顯示出來(lái).

但是 source 命令是一個(gè)內(nèi)置的 shell,它讀取和評(píng)估當(dāng)前 shell 進(jìn)程中的文件。因此,腳本所做的所有更改都將保留在 Bash shell 中。

排除 source 命令錯(cuò)誤

在某些 Linux 系統(tǒng)中,您可能會(huì)在嘗試使用 source 命令時(shí)遇到錯(cuò)誤“找不到 source”。您可以通過(guò)兩種方式修復(fù)此錯(cuò)誤:

1. 換 shell

某些 shell 不支持 source 命令。在這種情況下,您需要使用 chsh -s ($which shell_name)命令更改您的 shell 環(huán)境。

在更改 shell 后啟動(dòng)一個(gè)新的終端,并嘗試使用 source 命令。如果新的 shell 支持 source 命令,那么它應(yīng)該可以完美地工作。

2. 使用點(diǎn)/句點(diǎn)語(yǔ)法

一些 shell 環(huán)境不支持“ source ”語(yǔ)法,而是支持“ . ”語(yǔ)法?!皊ource”語(yǔ)法是 Bash 中點(diǎn)的同義詞。但這在 POSIX shell 中不起作用,因此為了獲得最大的兼容性,請(qǐng)使用句點(diǎn)語(yǔ)法。

你應(yīng)該知道的基本 Linux 命令

Linux shell 命令是使用終端與系統(tǒng)交互的好方法。它們是使用 *NIX 系統(tǒng)的本質(zhì)。

雖然您不需要了解所有命令,但熟悉一些有用的命令肯定會(huì)在您深入 Linux 世界時(shí)取得豐碩成果。

責(zé)任編輯:趙寧寧 來(lái)源: Linux迷
相關(guān)推薦

2021-05-16 08:22:19

Linux命令 Source

2021-05-31 11:30:43

Linuxsource命令

2009-08-03 12:09:42

linux at命令linux at命令詳batch

2019-08-30 07:24:16

2017-03-10 10:37:16

Linux命令腳本

2020-09-21 05:53:28

Linux命令&

2009-12-29 14:36:29

Ubuntu cron

2018-01-18 10:57:48

Linux服務(wù)器命令

2022-11-18 08:55:33

2011-07-07 17:30:25

iPhone Xcode

2023-04-28 10:31:54

Linux命令圖像

2020-12-07 06:42:09

LinuxIP命令

2021-08-02 13:38:21

Linuxalias命令

2024-05-31 12:54:37

.NET CoreLinux語(yǔ)言

2017-12-11 09:34:40

Linux啟動(dòng)或重啟命令與腳本

2023-06-05 18:26:39

Linux操作系統(tǒng)

2019-04-25 09:52:38

SSHLinux服務(wù)器

2020-11-06 07:42:01

Linux命令腳本

2015-12-14 14:26:56

Linux命令pv

2022-11-25 09:16:43

Linux命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)