成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

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

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

創(chuàng)建并運(yùn)行第一個(gè) shell 腳本

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

mkdir scripts
cd scripts

然后在 scripts 目錄中,使用 cat 命令創(chuàng)建一個(gè)名為 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 腳本運(yùn)行此命令。

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

chmod u+x hello.sh

然后運(yùn)行該腳本文件,如下:

bash hello.sh

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

圖片

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

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

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

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

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

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

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

shell 腳本開頭的 shebang 行

在 shell 腳本的第一行,即 #! /bin/bash 這一行通常被稱為 shebang,這是因?yàn)樗且詢蓚€(gè)字符開頭的,分別是 #(hash)!(bang)

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

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

圖片

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

在前面我們運(yùn)行 hello.sh 的時(shí)候,在前面添加了./ 字符,如果省略了這兩個(gè)字符,就會(huì)出錯(cuò):

$ hello.sh
hello.sh: command not found

首先 Bash 認(rèn)為我們正在嘗試運(yùn)行一個(gè)名為hello.sh的命令,當(dāng)我們?cè)诮K端上運(yùn)行任何命令時(shí),shell 會(huì)在PATH變量中存儲(chǔ)的一組目錄中查找該命令。

可以使用 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 變量中,各個(gè)目錄的路徑之間使用冒號(hào)分割開。

像 echo、cat 等 Linux 命令可以從任何地方運(yùn)行,因?yàn)樗鼈兊目蓤?zhí)行文件存儲(chǔ)在 bin 目錄中,而 bin 目錄包含在 PATH 中。當(dāng)我們運(yùn)行命令時(shí),系統(tǒng)會(huì)檢查 PATH 中所有可能的位置,以查找該命令的可執(zhí)行文件。

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

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

pwd

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

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

現(xiàn)在我們?cè)賮磉\(yùn)行一下 hello.sh:

$ hello.shHello, World!

圖片

可以看到,添加到 PATH 變量后,腳本可以正常運(yùn)行了。

責(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-02 14:30:24

Bash腳本數(shù)組

2022-12-14 10:08:00

BashLinux

2022-12-16 09:01:24

2022-12-09 07:58:52

Bash條件語句

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-08-01 16:10:00

SQL Server

2011-06-17 14:12:32

Qt

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2011-04-12 10:13:24

2009-11-13 15:46:25

Java多線程
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 99re热精品视频 | 亚洲xxxxx| 国产日韩欧美综合 | 成人免费视频网站在线看 | 亚洲高清免费视频 | 国产区久久 | 久久69精品久久久久久国产越南 | 毛片av免费在线观看 | 成人妇女免费播放久久久 | 一区二区日本 | 日韩一二区在线观看 | 国产午夜影院 | 在线精品亚洲欧美日韩国产 | 欧美激情久久久久久 | 色婷婷av777 av免费网站在线 | 日韩成人在线播放 | 国产黄色av电影 | 日本三级做a全过程在线观看 | 国产探花在线精品一区二区 | 精品久久影院 | 久久久久久国产精品 | 成人美女免费网站视频 | 91操操操 | 成人3d动漫一区二区三区91 | 久久综合国产 | 综合久久综合久久 | 大象视频一区二区 | 毛片高清 | 精品国产一区二区三区久久久蜜月 | 国产一级一级毛片 | 视频一区中文字幕 | 亚洲欧美综合精品另类天天更新 | 欧美性生活网 | 尤物在线精品视频 | www一级片| 一区二区三区视频在线 | 国产97久久 | 九九热在线免费观看 | 国产精品一区二区免费 | a欧美| 懂色av色香蕉一区二区蜜桃 |