91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用source命令將函數和變量導入Bash

發布時間:2021-10-23 11:29:36 來源:億速云 閱讀:278 作者:小新 欄目:系統運維

小編給大家分享一下如何使用source命令將函數和變量導入Bash,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!


source 就像 Python 的 import 或者 Java 的 include。學習它來擴展你的 Bash 能力。

登錄 Linux shell 時,你將繼承特定的工作環境。對于 shell 而言,“環境environment”意味著已經為你設置了某些變量,以確保你的命令可以按預期工作。例如,PATH 環境變量定義 shell 從哪里查找命令。沒有它,幾乎在 Bash 中嘗試執行的所有操作都會因“命令未發現” 錯誤而失敗。在執行日常任務時,環境對你幾乎是不可見的,但它很重要。

有多種方法可以影響你的 shell 環境。你可以在配置文件中進行修改,例如 ~/.bashrc 和 ~/.profile,你可以在啟動時運行服務,還可以創建自己的自定義命令或編寫自己的 Bash 函數 。

通過 source 添加到你的環境

Bash(以及其他一些 shell)有一個稱為 source 的內置命令。這就是令人困惑的地方:source 執行與命令 . 相同的功能(是的,那只是一個點),而與 Tcl 命令的 source 不是同一個(如果你輸入 man source,也許在屏幕上顯示的是它)。實際上,內置的 source 命令根本不在你的 PATH 中。這是 Bash 附帶的命令,要獲取有關它的更多信息,可以輸入 help source

. 命令兼容 POSIX。 但 source 命令不是 POSIX 定義的,但可以與 . 命令互換使用。

根據 Bash helpsource 命令在你當前的 shell 中執行一個文件。 “在你當前的 shell 中” 這句很重要,因為它表示它不會啟動子 shell。因此,用 source 執行的任何操作都發生在內部并影響當前環境。

在探討 source 對環境的影響之前,請用 source 命令導入一個測試文件,以確保其按預期執行代碼。首先,創建一個簡單的 Bash 腳本并將其保存為 hello.sh

#!/usr/bin/env bashecho "hello world"

使用 source,即使該腳本不設置可執行也可以運行:

$ source hello.shhello world

你也可以使用內置的 . 命令獲得相同的結果:

$ . hello.shhello world

source 和 . 命令成功地執行了測試文件的內容。

設置變量和導入函數

你可以使用 source 將文件 “導入” 到 shell 環境中,就像你可以在 C 或 C++ 中使用 include 關鍵字引用一個庫,或者在 Python 中使用 import 關鍵字引入一個模塊一樣。這是 source 的最常見用法之一,它也是 .bashrc 中的一個默認包含方式,通過 source 導入 .bash_aliases,以便將任何你自定義的別名在登錄時導入到你的環境。

這是導入 Bash 函數的示例。首先,在名為 myfunctions 的文件中創建一個函數。它將打印你的公共 IP 地址和本地 IP 地址:

function myip() {        curl <http://icanhazip.com>               ip addr | grep inet$IP | \        cut -d"/" -f 1 | \        grep -v 127\\.0 | \        grep -v \:\:1 | \        awk '{$1=$1};1'}

將該函數導入你的 shell:

$ source myfunctions

測試新函數:

$ myip93.184.216.34inet 192.168.0.23inet6 fbd4:e85f:49c:2121:ce12:ef79:0e77:59d1inet 10.8.42.38

source 的搜索

當你在 Bash 中使用 source 時,它將在當前目錄中搜索你引用的文件。但并非所有 shell 都這樣,因此,如果你不使用 Bash,請查看文檔。

如果 Bash 找不到要執行的文件,它將搜索你的 PATH。同樣,這并不是所有 shell 的默認設置,因此,如果你不使用 Bash,請查看文檔。

這些都是 Bash 中不錯的便利功能。這種出奇地強大,因為它允許你將常用函數保存在磁盤上的一個集中的位置,然后將你的環境視為集成開發環境 (IDE)。你不必擔心函數的存儲位置,因為你知道它們在你的本地位置等同于在 /usr/include 下,因此無論你在哪,當你導入它們時,Bash 都可以找到它們。

例如,你可以創建一個名為 ~/.local/include 的目錄作為常見函數存儲區,然后將此代碼塊放入 .bashrc 文件中:

for i in $HOME/.local/include/*;  do source $idone

這會將 ~/.local/include 中所有包含自定義函數的文件“導入”到 shell 環境中。

當你使用 source 或 . 命令時,Bash 是唯一搜索當前目錄和 PATH 的 shell。

將 source 用于開源

使用 source 或 . 來執行文件是影響環境同時保持變更模塊化的一種便捷方法。在下次考慮將大量代碼復制并粘貼到 .bashrc 文件中時,請考慮將相關函數或別名組放入專用文件中,然后使用 source 導入它們。

以上是“如何使用source命令將函數和變量導入Bash”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛纳斯县| 宿松县| 丰宁| 苍南县| 伊金霍洛旗| 繁昌县| 方正县| 高雄市| 利津县| 佛学| 都昌县| 明星| 柳州市| 出国| 中阳县| 莱芜市| 若尔盖县| 锡林郭勒盟| 南漳县| 陇南市| 健康| 肃南| 江门市| 嘉鱼县| 桂平市| 武定县| 乌苏市| 南江县| 迁安市| 耿马| 玉门市| 汶川县| 江北区| 潞西市| 滨州市| 濮阳市| 阿拉善左旗| 图们市| 凤山市| 松江区| 崇州市|