在本教程中,我將討論Shell腳本的基礎(chǔ)知識(shí)、它們的用途以及如何在Raspberry Pi上編寫(xiě)和運(yùn)行Shell腳本。
什么是Shell腳本?
Shell腳本可以讓你自動(dòng)化幾乎所有在Linux命令行上可以執(zhí)行的操作。Shell腳本只是一個(gè)文本文件,包含一系列按順序執(zhí)行的Shell(命令行)命令,就好像這些命令直接在命令行中輸入一樣。如果你需要一次性執(zhí)行大量命令,或者想要在特定情況下(如Raspberry Pi啟動(dòng)時(shí))自動(dòng)執(zhí)行命令,Shell腳本可以節(jié)省你的時(shí)間。
Shell語(yǔ)言是一種高級(jí)編程語(yǔ)言,與匯編或C等低級(jí)語(yǔ)言相比,它與系統(tǒng)和內(nèi)存進(jìn)程的關(guān)聯(lián)性更低。這基本上意味著它擁有執(zhí)行需要大量代碼才能完成的任務(wù)的命令和函數(shù)。
Shell腳本可以使用變量、if-then語(yǔ)句、循環(huán)和管道(見(jiàn)下文)。
Shell腳本能做什么?
如果你需要在命令行中輸入長(zhǎng)命令序列來(lái)完成某項(xiàng)任務(wù),Shell腳本會(huì)非常有用。如果你知道如何為任務(wù)編寫(xiě)Shell腳本,大多數(shù)操作都可以通過(guò)單個(gè)命令完成。例如,它們可以用于:
控制計(jì)算機(jī)啟動(dòng)時(shí)發(fā)生的情況
在事件發(fā)生時(shí)啟動(dòng)應(yīng)用程序
將一個(gè)命令的輸出作為另一個(gè)命令的輸入
批量重命名和移動(dòng)文件
批量轉(zhuǎn)換文件格式
Shell腳本的一個(gè)非常有用的功能是能夠創(chuàng)建管道。管道允許一個(gè)命令的輸出被轉(zhuǎn)發(fā)到下一個(gè)命令的輸入。你可以根據(jù)需要與多個(gè)命令一起使用管道。管道的基本語(yǔ)法是:
command 1 | command 2
如何創(chuàng)建和運(yùn)行Shell腳本
在這里,我只介紹編寫(xiě)Shell腳本的基礎(chǔ)知識(shí),但Arnold Robbins的《Classic Shell Scripting》一書(shū)對(duì)于任何想要學(xué)習(xí)Shell腳本編寫(xiě)細(xì)節(jié)的人來(lái)說(shuō)都是一個(gè)極好的資源。
創(chuàng)建腳本文件
Shell腳本只是一個(gè)帶有“.sh”擴(kuò)展名的可執(zhí)行文本文件。在這個(gè)例子中,我們將編寫(xiě)一個(gè)簡(jiǎn)單的“hello world”腳本來(lái)演示如何創(chuàng)建和運(yùn)行它們。
首先,登錄到你的Raspberry Pi,并導(dǎo)航到你想要保存腳本的目錄。然后打開(kāi)Nano文本編輯器,通過(guò)在命令行提示符下輸入以下內(nèi)容創(chuàng)建一個(gè)名為hello-world.sh的新文件:
sudo nano hello-world.sh
現(xiàn)在,在文本編輯器中輸入以下代碼:
#!/bin/bashecho"HelloWorld!"
這個(gè)程序的第一行,#!/bin/sh,被稱為shebang(井號(hào)嘆號(hào))。它告訴BASH shell執(zhí)行腳本中的命令。你創(chuàng)建的每個(gè)Shell腳本都需要在腳本的第一行包含這個(gè)。
通過(guò)按Ctrl-X保存并退出Nano,退出并保存文件。
使文件可執(zhí)行
接下來(lái),我們需要使hello-world.sh文件可執(zhí)行。為此,在命令行提示符下輸入以下內(nèi)容:
sudo chmod +x hello-world.sh
運(yùn)行腳本
現(xiàn)在Shell腳本已經(jīng)變得可執(zhí)行,我們可以運(yùn)行它。導(dǎo)航到保存文件的目錄,并輸入以下內(nèi)容:
sh hello-world.sh
或者
./hello-world.sh
命令提示符下方的行將打印出“Hello World!”。
這個(gè)“hello world”腳本并不特別有用,但它將向你展示如何創(chuàng)建和運(yùn)行Shell腳本的基礎(chǔ)知識(shí)。對(duì)于你可以在你的Shell腳本中使用的一些真正有用的Linux命令的列表,請(qǐng)參閱我們的文章《Raspberry Pi最有用的42個(gè)命令》。
-
Shell
+關(guān)注
關(guān)注
1文章
372瀏覽量
24172 -
樹(shù)莓派
+關(guān)注
關(guān)注
121文章
1992瀏覽量
107343
發(fā)布評(píng)論請(qǐng)先 登錄
如何在樹(shù)莓派上安裝并運(yùn)行 Arduino 集成開(kāi)發(fā)環(huán)境!

樹(shù)莓派新手必看!!你應(yīng)該要準(zhǔn)備的樹(shù)莓派硬件配置
在樹(shù)莓派上安裝和使用MySQL
在樹(shù)莓派上用Wolfram語(yǔ)言拍照
樹(shù)莓派上運(yùn)行pulse sensor
樹(shù)莓派_庫(kù)函數(shù)安裝教程
樹(shù)莓派用什么語(yǔ)言編程_樹(shù)莓派python編程詳解
樹(shù)莓派有什么用_樹(shù)莓派能用來(lái)做啥_樹(shù)莓派新手入門教程
樹(shù)莓派入門教程之新手使用樹(shù)莓派做系統(tǒng)的教程資料說(shuō)明

樹(shù)莓派成功運(yùn)行Windows 10
如何在樹(shù)莓派上運(yùn)行Fedora
【樹(shù)莓派】樹(shù)莓派4B新手篇:安裝官網(wǎng)Raspbian Buster系統(tǒng)及基礎(chǔ)配置

Raspberry Pi樹(shù)莓派新手指南
人臉識(shí)別指南:如何在樹(shù)莓派上安裝和設(shè)置 Dlib

釋放潛力:在樹(shù)莓派上運(yùn)行安卓系統(tǒng)實(shí)現(xiàn)多樣化應(yīng)用!

評(píng)論