ource 就像 Python 的 import 或者 Java 的 include。學習它來擴展你的 Bash 能力。
(本文字數:3145,閱讀時長大約:4 分鐘)
source 就像 Python 的 import 或者 Java 的 include。學習它來擴展你的 Bash 能力。
登錄 Linux shell 時,你將繼承特定的工作環境。對于 shell 而言,“ 環境(environment)”意味著已經為你設置了某些變量,以確保你的命令可以按預期工作。例如, PATH 環境變量定義 shell 從哪里查找命令。沒有它,幾乎在 Bash 中嘗試執行的所有操作都會因“命令未發現” 錯誤而失敗。在執行日常任務時,環境對你幾乎是不可見的,但它很重要。
有多種方法可以影響你的 shell 環境。你可以在配置文件中進行修改,例如 ~/.bashrc 和 ~/.profile,你可以在啟動時運行服務,還可以創建自己的自定義命令或編寫自己的 Bash 函數 。
Bash(以及其他一些 shell)有一個稱為 source 的內置命令。這就是令人困惑的地方:source 執行與命令 . 相同的功能(是的,那只是一個點),而與 Tcl 命令的 source 不是同一個(如果你輸入 man source,也許在屏幕上顯示的是它)。實際上,內置的 source 命令根本不在你的 PATH 中。這是 Bash 附帶的命令,要獲取有關它的更多信息,可以輸入 help source。
. 命令兼容 POSIX 。 但 source 命令不是 POSIX 定義的,但可以與 . 命令互換使用。
根據 Bash help,source 命令在你當前的 shell 中執行一個文件。 “在你當前的 shell 中” 這句很重要,因為它表示它不會啟動子 shell。因此,用 source 執行的任何操作都發生在內部并影響當前環境。
在探討 source 對環境的影響之前,請用 source 命令導入一個測試文件,以確保其按預期執行代碼。首先,創建一個簡單的 Bash 腳本并將其保存為 hello.sh:
#!/usr/bin/env bash
echo "hello world"
使用 source,即使該腳本不設置可執行也可以運行:
$ source hello.sh
hello world
你也可以使用內置的 . 命令獲得相同的結果:
$ . hello.sh
hello 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
測試新函數:
$ myip
93.184.216.34
inet 192.168.0.23
inet6 fbd4:e85f:49c:2121:ce12:ef79:0e77:59d1
inet 10.8.42.38
當你在 Bash 中使用 source 時,它將在當前目錄中搜索你引用的文件。但并非所有 shell 都這樣,因此,如果你不使用 Bash,請查看文檔。
如果 Bash 找不到要執行的文件,它將搜索你的 PATH。同樣,這并不是所有 shell 的默認設置,因此,如果你不使用 Bash,請查看文檔。
這些都是 Bash 中不錯的便利功能。這種出奇地強大,因為它允許你將常用函數保存在磁盤上的一個集中的位置,然后將你的環境視為集成開發環境 (IDE)。你不必擔心函數的存儲位置,因為你知道它們在你的本地位置等同于在 /usr/include 下,因此無論你在哪,當你導入它們時,Bash 都可以找到它們。
例如,你可以創建一個名為 ~/.local/include 的目錄作為常見函數存儲區,然后將此代碼塊放入 .bashrc 文件中:
for i in $HOME/.local/include/*;
do source $i
done
這會將 ~/.local/include 中所有包含自定義函數的文件“導入”到 shell 環境中。
當你使用 source 或 . 命令時,Bash 是唯一搜索當前目錄和 PATH 的 shell。
使用 source 或 . 來執行文件是影響環境同時保持變更模塊化的一種便捷方法。在下次考慮將大量代碼復制并粘貼到 .bashrc 文件中時,請考慮將相關函數或別名組放入專用文件中,然后使用 source 導入它們。
via: https://opensource.com/article/20/6/bash-source-command
作者: Seth Kenlon 選題: lujun9972 譯者: geekpi 校對: wxy
本文由 LCTT 原創編譯, Linux中國 榮譽推出
篇介紹了前端入門——html 中如何使用圖片,今天講下如何使用視頻和音頻等多媒體元素,它們能讓你的網頁更加豐富,讀者相對于文字圖片更愿意觀看視頻和音頻或其它多媒體。在本教程中,您將了解到不同的多媒體格式,以及如何在您的網頁中使用它們。
是多種媒體的綜合,一般包括文本,聲音和圖像等多種媒體形式。在計算機系統中,多媒體指組合兩種或兩種以上媒體的一種人機交互式信息交流和傳播媒體。使用的媒體包括文字、圖片、照片、聲音、動畫和影片,以及程式所提供的互動功能。
在因特網上,您會經常發現嵌入網頁中的多媒體元素,現代瀏覽器已支持多種多媒體格式。
多媒體元素(比如視頻和音頻)存儲于媒體文件中。多媒體元素也擁有帶有不同擴展名字的文件格式,比如 .swf、.wmv、.mp3 以及 .mp4。具體有哪些格式可以參考 w3cshool 網站的介紹,https://www.w3cschool.cn/html5/html5-video.html ,https://www.w3cschool.cn/html5/html5-audio.html。
直到現在,網頁上仍然不存在一項顯示視頻的標準。今天,大多數視頻是通過插件(比如 Flash)來顯示的。然而,并非所有瀏覽器都擁有同樣的插件。HTML5 規定了一種通過 video 元素來包含視頻的標準方法。
語法如下:
<video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
您的瀏覽器不支持Video標簽。
</video>
<video> 元素提供了播放、暫停和音量控件來控制視頻。
同時 <video> 元素也提供了 width 和 height 屬性控制視頻的尺寸。如果設置的高度和寬度,所需的視頻空間會在頁面加載時保留。如果沒有設置這些屬性,瀏覽器不知道視頻的大小,瀏覽器就不能在加載時保留特定的空間,頁面就會根據原始視頻的大小而改變。
<video> 與 </video> 標簽之間插入的內容是提供給不支持 video 元素的瀏覽器顯示的。元素可以鏈接不同的視頻文件。瀏覽器將使用第一個可識別的格式。一個頁面可以使用多個<video> 標簽,<video> 元素支持三種視頻格式: MP4, WebM, 和 Ogg。
顯示效果:
和視頻一樣沒有統一的標準,各個瀏覽器都不一樣。HTML5 規定了在網頁上嵌入音頻元素的標準,即使用 <audio> 元素。通過使用HTML5中的audio功能,你可以實現與flash相同的功能,即回放、跳轉、緩沖等。
語法如下:
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
您的瀏覽器不支持 audio 元素。
</audio>
control 屬性供添加播放、暫停和音量控件。在<audio> 與 </audio> 之間你需要插入瀏覽器不支持的<audio>元素的提示文本 。允許使用多個 <source> 元素。<source> 元素可以鏈接不同的音頻文件,瀏覽器將使用第一個支持的音頻文件。目前, <audio>元素支持三種音頻格式文件: MP3, Wav, 和 Ogg。
顯示效果:
插件(Plug-in)是擴展瀏覽器標準功能的計算機程序,插件被設計用于許多不同的目的:
1、<object> 元素
<object> 元素定義 HTML 文檔中的嵌入式對象。
它旨在將插件(例如 Java applet、PDF 閱讀器和 Flash 播放器)嵌入網頁中,但也可以用于將 HTML 包含在 HTML 中。
如下:
插入一個網頁片段
<object width="100%" height="500px" data="snippet.html"></object>
或者插入一個圖片
<object data="audi.jpeg"></object>
播放一個視頻
<object width="420" height="360"
classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab">
<param name="src" value="movie.mp4">
<param name="controller" value="true">
</object>
播放一個音頻
<object height="100" width="100" data="song.mp3"></object>
2、<embed> 元素
<embed> 元素也可定義了 HTML 文檔中的嵌入式對象。這是一個 HTML5 標簽,在 HTML4 中是非法的,但是所有瀏覽器中都有效。
插入一個flash文件
<embed width="400" height="50" src="bookmark.swf">
插入html片段
<embed width="100%" height="500px" src="snippet.html">
播放一個音頻
<embed height="100" width="100" src="song.mp3" />
插入一個圖片
<embed src="audi.jpeg">
注意:
大多數瀏覽器不再支持 Java 小程序和插件。
大多數現代瀏覽器關閉了對 Flash 的支持。
我們可以使用 <video> 和 <audio> 標簽來顯示視頻和音頻
如下視頻代碼,HTML 5 <video> 元素會嘗試播放以 mp4、ogg 或 webm 格式中的一種來播放視頻。如果均失敗,則回退到 <embed> 元素。
HTML 5 + <object> + <embed> 是最好的解決辦法。
<video width="320" height="240" controls="controls">
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
<source src="movie.webm" type="video/webm" />
<object data="movie.mp4" width="320" height="240">
<embed src="movie.swf" width="320" height="240" />
</object>
</video>
如下音頻代碼,HTML5 <audio> 元素會嘗試以 mp3 或 ogg 來播放音頻。如果失敗,代碼將回退嘗試 <embed> 元素。
HTML 5 + <embed> 是最好的解決辦法。
<audio controls="controls" height="100" width="100">
<source src="song.mp3" type="audio/mp3" />
<source src="song.ogg" type="audio/ogg" />
<embed height="100" width="100" src="song.mp3" />
</audio>
到此你以及了解了如何在網頁中使用視頻音頻及其它多媒體控件,趕快自己試試,祝你學習愉快。
參考文獻:https://www.w3school.com.cn/html/html_video.asp
上篇:前端入門——html 中如何使用圖片
下篇:前端入門——html 表格的使用
這篇文章中,我將分享21個HTML技巧,包括代碼片段,可以提升你的編碼技能。
讓我們立即開始吧。
(本文視頻講解:java567.com)
*請認真填寫需求信息,我們會在24小時內與您取得聯系。