簡單 Shell 指令碼隨手錄

2021-08-04 15:54:56 字數 2674 閱讀 9766

主要是整apk gradle 打包上傳蒲公英時用到了shell ,順便記錄下

一、基本

1. 宣告直譯器

shell 種類很多,需要宣告直譯器,一般第一行這樣寫 #!/bin/bash

#!/bin/bash

echo "hello world"

#! 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種 shell

2.注釋

使用 # 開頭即為注釋 

# 這是乙個注釋

3. 執行shell指令碼

3.1 作為可執行程式執行,比如執行 test.sh

chmod +x ./test.sh  #使指令碼具有執行許可權

./test.sh #執行指令碼,注意以 . 開始

3.2 作為直譯器引數執行

/bin/sh test.sh

二、shell 語法雜燴

1. 變數定義

temp="測試用的文字"

temp="test string"

# "="符號左右不能有空格

2. 使用變數

使用$符合取值

temp="測試用的文字"

echo $temp

echo $

# 輸出:測試用的文字

這裡可以加 ,也可以不加

用來確定邊界, 一般習慣性要加,這樣好閱讀理解

3. 強大的 ${}

# 乙個"#",表示從左起第乙個指定字元 

## 兩個"#",表示從左起最後乙個指定字元 % 

乙個"%",表示從右起第乙個指定字元 %% 

兩個"%",表示從右起最後乙個指定字元 

* "*",表示要刪除的字元,從左查則寫左刪左,從右查則寫右刪右,這裡互換無效

#!/bin/bash

temp="應用名稱v1.0.0_build10_release.apk"

echo $

# 輸出:應用名稱v1.0.0_build10_release.apk

echo $

# 乙個"#",表示從左起第乙個「_」字元

# 輸出:build10_release.apk

echo $

# 兩個"#",表示從左起最後乙個「_」字元

# 輸出:release.apk

echo $

# 乙個"%",表示從右起第乙個「_」字元

# 輸出:應用名稱v1.0.0_build10

echo $

# 兩個"%",表示從右起最後乙個「_」字元

# 輸出:應用名稱v1.0.0

# 聯合運用,取出build大小

temp=$

temp=$

echo $

# 輸出:10

4. basename 獲取檔名

temp="/desktop/test.sh"

echo $(basename $)

# 輸出:test.sh

5. dirname 獲取目錄

temp="/lxmy/desktop/test.sh"

echo $(dirname $)

# 輸出:/lxmy/desktop

6. 運算子

6.1 字串運算子

= 檢查字串是否相同,相同返回true

!= 檢查字串是否相同,不同返回true

-z 檢查字串長度是否為0,為0返回true

-n 檢查字串長度是否不為0,不為0返回true

7. if、if else

注意:shell 指令碼中, 流程控制不能為空,簡單點說,寫了if,裡面就得寫東西,else 也一樣,不能為空

if 開頭,fi 結尾,注意 if 中括號裡要加空格隔開

temp="abcd"

if [ -z "$temp" ]; then # 判斷是否為空

echo "空的"

fiif [ -z "$temp" ]; then # 判斷是否為空

echo "空的"

else

echo "有內容"

fi

#!/bin/bash

temp="abcd"

if [ $temp ]

then # 判斷是否為空

echo "有內容"

else

echo "空的"

fi

參看end

linux用shell指令碼模擬時鐘 指令碼錄製

bin bash this is a clock,it will display time once a second,in the same position file name clock.sh tput sc while true do echo n date sleep 1 tput rc ...

簡單的shell指令碼

bin bash set x count 1 port 10125 ip 125 pre 100 dir pwd destination home while count le 3 dodir expr pre count reip ip report port mkdir dir sed e s ...

shell指令碼簡單命令

shell 命令直譯器 處於系統核心和使用者之間負責解釋命令列的 登入之後預設的shell程式是 bin bash 不同的shell內部指令,執行環境會有所區別 常見的shell bin sh bin bash sbin nologin bin bash 是指這個指令碼是用 bin bash來解釋執...