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

Bash 初學(xué)者系列 1:創(chuàng)建并運行第一個 bash shell 腳本

系統(tǒng) Linux
今天我們將會介紹如何創(chuàng)建一個簡單的 bash shell 腳本,如何運行 bash 腳本,以及關(guān)于 shell 腳本必須了解的內(nèi)容。

我們可能經(jīng)常會在 Linux 服務(wù)器上做一些重復(fù)的工作,比如文件的備份,清理臨時文件,或者數(shù)據(jù)庫的備份與恢復(fù)等。

對于這些重復(fù)性的工作,將其自動化是一個常規(guī)的操作,而自動化任務(wù)是 bash 腳本功能的應(yīng)用場景之一。

今天我們將會介紹如何創(chuàng)建一個簡單的 bash shell 腳本,如何運行 bash 腳本,以及關(guān)于 shell 腳本必須了解的內(nèi)容。

創(chuàng)建并運行第一個 shell 腳本

我們先創(chuàng)建一個名為 scripts 的目錄,用于存放所有的 bash 腳本。

mkdir scripts
cd scripts

然后在 scripts 目錄中,使用 cat 命令創(chuàng)建一個名為 hello.sh 的文件:

cat > hello.sh

在 hello.sh 文件中編輯如下內(nèi)容:

echo 'Hello, World!'

Ctrl + D 命令保存文件,然后退出 cat 命令。

也可以使用其他文本編輯器,比如 vim,emacs 或者 nano;如果你用的桌面 Linux,也可以使用像 Gedit 這樣的圖形文本編輯器將文本添加到文件中。

我們添加到 hello.sh 中的腳本是使用 echo 命令打印 “Hello World”,你也可以直接在終端中使用此命令,不過在我們的測試中,是通過 shell 腳本運行此命令。

然后我們使用 chmod 命令給 hello.sh 文件添加可執(zhí)行權(quán)限,如下所示:

chmod u+x hello.sh

然后運行該腳本文件,如下:

bash hello.sh

你會看到 Hello World 打印在屏幕上。這跟我們學(xué)習(xí)其他編程語言一樣,第一個程序總是打印 Hello World。

圖片

將shell腳本轉(zhuǎn)換為bash腳本

將 shell 腳本轉(zhuǎn)為 bash 腳本,這看起來比較難理解是吧?我們簡單的解釋一下。

Bash是“Bourne-Again shell”的縮寫,它只是 Linux 中許多可用 shell 中的一種。

而 shell 是一個接受和運行命令的命令行解釋器。如果你運行過 Linux 命令,那么也就使用過 shell。當(dāng)你在 Linux 中打開終端時,就已經(jīng)在運行系統(tǒng)的默認 shell。

bash 通常是大多數(shù) Linux 系統(tǒng)的默認 shell,所以很多時候,bash 都與 shell 同義。

shell 腳本的語法幾乎是相同的,但也有不同的地方。比如,在 zsh 中,數(shù)組的索引是從1開始的,而 bash 是從0開始的。如果腳本中存在數(shù)組,那么使用zsh 編寫的 shell 腳本,與 bash 編寫的腳本就不同了。

為了避免這種差異造成的運行異常,我們應(yīng)該告訴解釋器當(dāng)前腳本是使用哪種 shell 編寫的,這個時候,需要使用 shebang!

shell 腳本開頭的 shebang 行

在 shell 腳本的第一行,即 #! /bin/bash 這一行通常被稱為 shebang,這是因為它是以兩個字符開頭的,分別是 #(hash)!(bang)。

#! /bin/bash
echo 'Hello, World!'

當(dāng)我們在腳本的頂部包含 #! /bin/bash 時,系統(tǒng)就知道我們希望使用 bash 作為腳本的解釋器。因此可以直接運行 hello.sh,而無需在其前面加上 bash。

圖片

將shell腳本添加到PATH(以便可以從任何目錄運行)

在前面我們運行 hello.sh 的時候,在前面添加了./ 字符,如果省略了這兩個字符,就會出錯:

$ hello.sh
hello.sh: command not found

首先 Bash 認為我們正在嘗試運行一個名為hello.sh的命令,當(dāng)我們在終端上運行任何命令時,shell 會在PATH變量中存儲的一組目錄中查找該命令。

可以使用 echo 命令查看 PATH 變量的內(nèi)容:

echo $PATH
/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

在 PATH 變量中,各個目錄的路徑之間使用冒號分割開。

像 echo、cat 等 Linux 命令可以從任何地方運行,因為它們的可執(zhí)行文件存儲在 bin 目錄中,而 bin 目錄包含在 PATH 中。當(dāng)我們運行命令時,系統(tǒng)會檢查 PATH 中所有可能的位置,以查找該命令的可執(zhí)行文件。

如果想要讓我們的 bash 腳本從任何地方都可以運行,那么需要將該腳本的位置添加到 PATH 變量中。

首先,使用 pwd 命令查看當(dāng)前目錄的位置(bash 腳本的位置):

pwd

然后使用export命令將腳本目錄添加到 PATH 變量中:

export PATH=$PATH:/home/user/scripts

現(xiàn)在我們再來運行一下 hello.sh:

$ hello.shHello, World!

圖片

可以看到,添加到 PATH 變量后,腳本可以正常運行了。

責(zé)任編輯:龐桂玉 來源: TIAP
相關(guān)推薦

2023-06-19 11:30:19

bashshell

2022-11-30 07:47:00

Bash腳本

2022-12-01 08:10:49

Bash腳本參數(shù)

2022-12-13 12:55:15

Bash循環(huán)

2022-12-14 10:08:00

BashLinux

2022-12-02 14:30:24

Bash腳本數(shù)組

2022-12-09 07:58:52

Bash條件語句

2022-12-16 09:01:24

2022-12-08 12:05:03

Bash字符串

2022-12-07 07:43:21

2025-02-10 07:30:00

malloc內(nèi)存分配器內(nèi)存

2022-11-03 08:13:52

echo 命令Linux

2021-12-30 10:26:37

Bash Shell腳本文件命令

2015-09-28 11:15:03

java初學(xué)者建議

2011-06-17 14:12:32

Qt

2011-08-01 16:10:00

SQL Server

2022-01-20 16:43:38

Bash 腳本ShellLinux

2022-02-28 11:02:53

函數(shù)Bash Shell語句

2009-11-13 15:46:25

Java多線程

2011-09-16 09:38:19

Emacs
點贊
收藏

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