shell指令碼基礎

2021-10-12 12:45:31 字數 1846 閱讀 5726

hello world!

#! bin/bash

echo 「hello world!」12

執行./my.sh 相對路徑

/home/li/my.sh 絕對路徑

sh ./my.sh 沒有執行許可權的執行12

3變數系統變數和使用者自定義變數

系統變數

echo "path = pat

h"ec

ho"u

ser=

path" echo "user=

path"e

cho"

user

=user12

自定義a=100 定義乙個變數

引用echo $a

銷毀變數

unset a12

345readonly a = 800 靜態變數,不可以unset

1注意:變數定義兩側不能有空格

b=ls -l /home將命令返回值賦值給b

echo bb=

b b=

bb=(ls -l /home) 第二種寫法

echo $b12

34設定環境變數(供其它shell使用)

/etc/profile

export var=/opt/tomcat

source 檔案後 echo $var 可引用12

位置引數變數

./my.sh 100 200

#獲取100,及200

$n $0表示命令本身 $1-9表示

一到九的

引數,十

以上的參

數使

用9表示一到九的引數,十以上的引數使用

9表示一到九

的引數,

十以上的

引數使用

$* 代表命令列中的所有引數,把所有的引數看作整體

$@ 代表所有引數,但是每個引數區別對待

$# 代表闡述個數12

345預定義變數

$$ 當前程序號

$! 後台預先的最後乙個程序號

$? 最後一次執行命令返回的狀態,0表示正確執行

在這裡插入描述

運算子$((表示式))

$[表示式]

expr m + n 注意需要空格

expr m - n

expr m % n

expr m * n 注意*是*12

3456

條件判斷

[ condition ] 注意兩邊有空格,非空為真

if [ con ]

then

echo 「」

fi #結束12

345if

then

echo

elif

then

echofi1

2345

67在這裡插入描述

case分支

case $變數名 in

「value」)

echo 「」

;; #結束

「value」)

echo 「」

;;*) #都沒有匹配上

echo 「」

;;esac #結束12

3456

78910

11迴圈for

for 變數 in 值1 值2 值3

do邏輯

done12

34第二種語法格式案例

sum=0

for ((i=1;i<=100;i++)) #兩層大括號

do sum=[

[[sum+$i]

done12

34迴圈while

while

dodone12

34

shell指令碼基礎

執行shell指令碼有兩種方法 1 作為可執行程式 將上面的 儲存為 test.sh,並 cd 到相應目錄 chmod x test.sh 使指令碼具有執行許可權 test.sh 執行指令碼 注意,一定要寫成 test.sh,而不是 test.sh,執行其它二進位制的程式也一樣,直接寫 test.s...

shell指令碼基礎

shell定義 shell是命令解析器,將使用者的輸入的指令轉化為機器可以執行的程式。和c語言不同,指令碼有自己的語法。比較常用的格式是 bin bash或者 bin sh 如 這是乙個判斷輸入字元型別的程式 bin bash read key case in a z echo upperlette...

Shell指令碼基礎

1 shell是使用者與核心進行互動操作的一種介面,目前最流行的shell稱為bash shell 2 shell也是一門程式語言 解釋型的程式語言 即shell指令碼 3 乙個系統可以存在多個shell,可以通過cat etc shells命令檢視系統中安裝的shell,不同的shell可能支援的...