Shell指令碼的簡述與入門

2021-10-01 11:47:07 字數 2538 閱讀 6107

學習內容——shell指令碼

1.簡述shell:shell是乙個命令列直譯器,她接收應用程式/使用者命令,然後呼叫作業系統核心。

2.shell解析器

linux提供的shell直譯器有:cat /etc/shells

!!!重要記住的是這兩個

01:    /bin/sh        是bash的乙個快捷方式

02:    /bin/bash    bash是大多數linux預設的shell,包含的功能幾乎可以涵蓋shell所有的功能

3.shell指令碼入門

01.指令碼格式

指令碼以#!/bin/bash或者#!/bin/env bash開頭(表示指定解析器)

02.shell的編寫格式

vi/vim sss.sh 字尾.sh

03.shell的執行命令

第一種01:    sh sss.sh        sh+指令碼的相對路徑

02:sh 絕對路徑        sh+指令碼的絕對路徑

03:bash sss.sh        bash+指令碼的相對路徑

04:bash 絕對路徑    bash+指令碼的絕對路徑

第二種(必須具有可執行的許可權+x)

01:./sss.sh        相對路徑

02:絕對路徑sss.sh    絕對路徑

04.shell多命令處理

需求:在/home/jinghang/目錄下建立乙個banzhang.txt,在banzhang.txt檔案中增加「i love you」,執行完畢後列印「報告班長,任務在2023年12月14日 xx:xx:xx 執行完畢」

實操:#!/bin/bash

cd /home/jinghang

touch cls.txt

echo "i love you" >>cls.txt

4.shell中的變數

01.系統常用變數

$home $pwd $shell $user 等

echo $pwd

02.自定義變數

001.基本語法

1)定義變數:變數名=變數值 

2)撤銷變數:unset 變數名

3)宣告靜態變數:readonly變數,注意:不能unset

002.變數定義規則

1)變數名稱可以由字母、數字和下劃線組成,但是不能以數字開頭,環境變數名建議大寫。

2)等號兩側不能有空格

3)在bash中,變數預設型別都是字串型別,無法直接進行數值運算。

4)變數的值如果有空格,需要使用雙引號或單引號括起來。

003.實操

(1)定義變數a

[jinghang@hadoop101 datas]$ a=5

[jinghang@hadoop101 datas]$ echo $a

5(2)給變數a重新賦值

[jinghang@hadoop101 datas]$ a=8

[jinghang@hadoop101 datas]$ echo $a

8(3)撤銷變數a

[jinghang@hadoop101 datas]$ unset a

[jinghang@hadoop101 datas]$ echo $a

(4)宣告靜態的變數b=2,不能unset

[jinghang@hadoop101 datas]$ readonly b=2

[jinghang@hadoop101 datas]$ echo $b

2[jinghang@hadoop101 datas]$ b=9

-bash: b: readonly variable

(5)在bash中,變數預設型別都是字串型別,無法直接進行數值運算

[jinghang@hadoop101 ~]$ c=1+2

[jinghang@hadoop101 ~]$ echo $c

1+2(6)變數的值如果有空格,需要使用雙引號或單引號括起來

[jinghang@hadoop101 ~]$ d=i love banzhang

-bash: world: command not found

[jinghang@hadoop101 ~]$ d="i love banzhang"

[jinghang@hadoop101 ~]$ echo $a

i love banzhang

03.特殊變數    $n

$n(功能描述:n為數字,$0代表該指令碼名稱,$1-$9代表第一到第九個引數,十以上的引數,十以上的引數需要用大括號包含,如$)

04.特殊變數    $#

$#(功能描述:獲取所有輸入引數個數,常用於迴圈)

05.特殊變數    $*,$@

$*    (功能描述:這個變數代表命令列中所有的引數,$*把所有的引數看成乙個整體)

$@    (功能描述:這個變數也代表命令列中所有的引數,不過$@把每個引數區分對待)

06.特殊變數    $?

$?(功能描述:最後一次執行的命令的返回狀態。如果這個變數的值為0,證明上乙個命令正確執行;如果這個變數的值為非0(具體是哪個數,由命令自己來決定),則證明上乙個命令執行不正確了。)

Shell指令碼(三) Shell指令碼入門

1 指令碼格式 指令碼以 bin bash開頭 指定解析器 2 第乙個shell指令碼 helloworld 1 需求 建立乙個shell指令碼,輸出helloworld 2 案例實操 atguigu hadoop101 datas touch helloworld.sh atguigu hadoo...

shell 指令碼入門

shell 是乙個用 c 語言編寫的程式,它是使用者使用 linux 的橋梁。shell 既是一種命令語言,又是一種程式語言。shell 是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務。ken thompson 的 sh 是第一種 unix shell,win...

shell指令碼入門

str wxz echo 輸出 3 提取子字串 以下例項從字串第 2 個字元開始擷取 4 個字元 string the shell script is great echo 輸出 he s查詢子字串 查詢字元 i 或 s 的位置 string runoob is a great company ec...