Shell指令碼程式設計學習入門

2021-10-09 14:14:03 字數 2068 閱讀 3089

shell起源於unix,是unix和linux通訊的東西

使用者和核心之間的「**」,叫做shell。

shell除了能解釋使用者輸入的命令,把它傳遞給核心,還可以:

1.呼叫其他程式,給其他程式傳遞資料或引數,並獲取程式的處理結果:

2.在多個程式之間傳遞資料,把乙個程式的輸出作為另乙個程式的輸入;

3.shell本身也可以被其他程式呼叫。

shell基本的程式設計元素:

1 if…else 選擇結構,switch…case開關語句,for,while,until迴圈

2 變數、陣列、字串、注釋、加減乘除、邏輯運算等概念

3.函式,包括使用者自定義的函式和內建函式(printf/export/eval)

bash shell 預設的提示符是是美元符號$;對於超級使用者(root使用者),bash shell預設的提示符是#。

[venturezhao@venturezhao-mc0 ~ %]

啟動shell的使用者名稱,即ventuerzhao

本地主機名稱,也即venturezhao-mc0

當前主目錄,~是主目錄的簡寫表示方法。

shell通過ps1和ps2兩個環境變數來控制提示符格式:

ps1控制最外層命令列的提示符格式。

ps2控制第二層命令列的提示符格式。

在shell中初次輸入命令,使用的是ps1指定的提示符格式;如果輸入乙個命令後還需要輸入附加資訊,shell就使用ps2指定的提示符格式。

echo遇到第乙個「會認為是不完整的附加資訊,所以會繼續等待使用者輸入,直到遇見第二個」。輸入的附加資訊就是第二層命令,使用》作為提示符。

shell 使用以\為前導的特殊字元來表示命令提示符中包含的要素,這使得 ps1 和 ps2 的格式看起來可能有點奇怪。下表展示了可以在 ps1 和 ps2 中使用的特殊字元。

字元描述

\a鈴聲字元

\d格式為「日 月 年」的日期

\eascii轉義字元

\h本地主機名

\h完全合格的限定域主機名

\jshell當前管理的作業數

\1shell終端裝置名的基本名稱

\nascii換行字元

\rascii回車

\sshell的名稱

\t格式為「小時:分鐘:秒」的24小時制的當前時間

\t格式為「小時:分鐘:秒」的12小時制的當前時間

@格式為am/pm的12小時制的當前時間

\u當前使用者的使用者名稱

\vbash shell的版本

\vbash shell的發布級別

\w當前工作目錄

\w當前工作目錄的基本名稱

!該命令的bash shell歷史數

#該命令的命令數量

$如果是普通使用者,則為美元符號$;如果超級使用者(root 使用者),則為井號#

\nnn

對應於八進位制值 nnn 的字元\斜槓

[控制碼序列的開頭

]控制碼序列的結尾

注意,所有的特殊字元均以反斜槓\開頭,目的是與普通字元區分開來。您可以在命令提示符中使用以上任何特殊字元的組合。

輸入一些**:

#!/bin/bash

echo

"hello world !"

「#!」 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種shell。echo命令用於向視窗輸出文字。

執行shell指令碼有兩種方法

作為可執行程式

將上面的**儲存為test.sh,並cd到相應目錄:

chomd + x ./test.sh

./test.sh

一定要寫成./test.sh,而不是test.sh。執行其他二進位制的程式也一樣,直接寫test.sh,linux系統會去path裡尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在path裡,你的當前目錄通常不在path裡,所以寫成test.sh是會找不到命令的,要用./test.sh告訴系統說,就在當前目錄找。

shell指令碼程式設計入門

運維工程師 shell指令碼程式設計 shell 命令解析器 用於訪問核心 作用 命令解析 呼叫相應功能 首行 usr bin sh 指定解析器 前為未指定解析器,使用預設解析器 用處 自動化運維 用乙個步驟代替別人的十幾個步驟 使用指令碼 實現自動化 機器代替自己來做一些操作 s 件中需要 注發布...

Shell指令碼程式設計入門

最近在學習shell指令碼,兩個地方值得注意。1.shell中的運算 a 7b 8 let c a b c a b c a b c expr a b 等價於 參考 03 linux shell 變數 數學 運算 2.shell中的exec和重定向 我寫了乙個簡單的指令碼copy.sh,如下 bin ...

shell指令碼學習 入門

shell指令碼 乙個簡單的shell指令碼 shell指令碼 位於第一行的 shell指令碼 shell的基本元素 1 命令與引數 shell指令碼 shell的基本元素 2 變數 shell指令碼 shell的基本元素 3 簡單的echo輸出 shell指令碼 shell的基本元素 4 華麗的p...