溫馨提示×

溫馨提示×

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

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

學習shell,你必須要知道這些~

發(fā)布時間:2020-07-01 10:46:55 來源:網(wǎng)絡 閱讀:369 作者:wuhanyeah 欄目:開發(fā)技術

1.什么是Shell?
2.什么是Shell腳本?
3.怎么寫好一個規(guī)范標準的Shell腳本?
4.怎么執(zhí)行shell?
5.shell腳本的執(zhí)行過程?

學習shell,你必須要知道這些~


1.什么是Shell?

首先請圖————自動略過各位都是新手(CaiJi)


學習shell,你必須要知道這些~


聰明的你如圖所得:


Shell=命令解釋器
它的作用是執(zhí)行并解釋用戶輸入的命令及腳本,用戶鍵入一條命令,Shell就執(zhí)行并解釋一條。
鍵入命令,就可以立即得到回應的對話方式,被稱之為為交互式。
Shell它存在于操作系統(tǒng)的最外層,負責直接與用戶對話,把用戶的輸入解釋給操作系統(tǒng),并處理各種各樣的操作系統(tǒng)的輸出結(jié)果,輸出到屏幕反饋給用戶,當我們輸入系統(tǒng)用戶名和密碼,登錄到Linux后的所有操作都是由
Shell解釋并執(zhí)行的。

所以這就是Shell~

伽馬<—————————————————————————————————————————>射線

2.接下來我們談什么是Shell腳本?
學習shell,你必須要知道這些~
———————————你猜唄———————————

既然上文談了Shell,想必各位也一知半解了。

當命令或腳本語句不在命令行下執(zhí)行,而是通過一個程序文件(.sh)執(zhí)行時,這種東西就被稱為Shell腳本。

當你在Shell腳本里鍵入了n條命令、語句及循環(huán)等等,然后一次性把這些命令執(zhí)行完(前提沒有錯誤),這種通過文件執(zhí)行腳本的方式,稱為非交互的方式。Shell腳本類似于Windows系統(tǒng)下的批處理文件。用戶可以在Shell腳本中敲入一系列的命令及語句語法組合。

這些命令、變量和流程控制語句等結(jié)合起來就形成了一個功能強大(相對于其他語言還是弱雞)的Shell腳本。

伽馬<——————————————————————————————————————————>射線

3.怎么寫好一個規(guī)范標準的Shell腳本?

想寫一個規(guī)范標準完美的shell?還差的遠呢~

tips:在腳本的第一行,指出由哪個解釋器執(zhí)行,來人,上例子:

#!/bin/bash

#!/bin/sh

其實你不指定還是會默認使用bash執(zhí)行的,只是領導說要規(guī)范,系統(tǒng)就這么做了。(養(yǎng)成良好習慣)

默認sh就是bash,(早期會稍有不同)因為sh是bash的軟連接,在CentOS里,不信?上圖為證:
學習shell,你必須要知道這些~

tips:

命令最前方加上#號,代表注釋,注釋就是跳過此行,作用于描述

描述該腳本的作用,記得加上#號,可多行注釋,自行百度。

加上version信息,以及”著作人“

腳本統(tǒng)1路徑目錄

腳本中不用中文

成對的符號兒和循環(huán)格式一次性寫完避免忘記,高亮顏色會提醒你

邏輯性強,干凈,代碼命令少,最簡化,多用函授、變量等

*具體參考《代碼整潔之道》(僅僅寫個shell腳本就不用這么麻煩了)
伽馬<——————————————————————————————————————————>射線
4.怎么執(zhí)行shell?

tips:
sh script_Name.sh 或 bash script_Name.sh
用sh 或 bash直接運行
學習shell,你必須要知道這些~

/path/script_Name.sh 或 . /scrpt_Name.sh
輸入路徑加腳本名執(zhí)行 或 點 /路徑/腳本(前提:有執(zhí)行權限)
學習shell,你必須要知道這些~

source script_Name.sh 或 . script_Name.sh
source命令直接運行腳本 或 點 腳本
學習shell,你必須要知道這些~

伽馬<——————————————————————————————————————————>射線

5.shell腳本的執(zhí)行過程?
來人,上圖!
學習shell,你必須要知道這些~

簡單的說就是從上至下,一行一行執(zhí)行,中途有子shell需等待,可以加入后臺 用&符
tops:注意子shell里面的變量不能用于父shell,父shell的變量能用于子shell,所以按需設置。

你get到了嗎?

向AI問一下細節(jié)

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

AI