Linux之Shell脚本入门
一、Shell概述
Shell是一個命令行解釋器,它接受應用程序/用戶命令,然后調用操作系統內核。
Shell還是一個功能強大的編程語言,易編寫、易調試、靈活性強。
二、Shell腳本入門
1.腳本格式
腳本以#!/bin/bash開頭
2.第一個Shell腳本
(1)需求
創建一個Shell腳本,輸出helloworld
(2)實操
touch helloworld.sh vim helloworld.sh在helloworld.sh中輸入如下內容:
#!/bin/bash echo 'helloworld'(3)執行方式
第一種:采用bash或sh+腳本的
sh+腳本的相對路徑(不用賦予腳本+x權限)
sh helloworld.shsh+腳本的絕對路徑
sh /home/depo/shell/helloworld.shbash+腳本的相對路徑
bash hellworld.shbash+腳本的絕對路徑
bash /home/depo/shell/helloworld.sh第二種:采用輸入腳本的絕對路徑或相對路徑執行腳本(必須具有可執行權限+x)
首先賦予helloworld.sh腳本的+x權限
chmod 777 helloworld.sh執行腳本
相對路徑: ./helloworld.sh 絕對路徑: /home/depo/shell/helloworld.sh注意:第一種執行方式,本質是bash解析器幫你執行腳本,所以腳本本身不需要執行權限。第二種執行方法,本質是腳本需要自己執行,所以需要執行權限。
3.第二個Shell腳本:多命令處理
#!/bin/bash ? touch test.txt echo "i love java" >> test.txt三、Shell中的變量
1.系統變量
(1)常用系統變量
$HOME、$PWD、$SHELL、$USER等(2)實操
查看系統變量的值
[depo@dev shell]$ echo $HOME /home/depo2.自定義變量
(1)基本變量
定義變量: 變量=值
撤銷變量: unset 變量
聲明靜態變量: readonly 變量 注意:不能unset
(2)變量定義規則
-
變量名稱可以由字母、數字和下劃線組成,但是不能以數字開頭,環境變量名建議大寫
-
等號兩側不能由空格
-
在bash中,變量默認類型都是字符串類型,無法直接進行數值運算
-
變量的值如果有空格,需要使用雙引號或單引號括起來
(3)實操
1.定義變量A
A=5 echo $A2.給變量A重新賦值
A=8 echo $A3.撤銷變量A
unset A echo $A4.聲明靜態的變量B=2,不能unset
[depo@dev shell]$ readonly B=2 [depo@dev shell]$ echo $B 2 [depo@dev shell]$ unset B -bash: unset: B: 無法反設定: 只讀 variable [depo@dev shell]$5.在bash中,變量默認是字符串類型
[depo@dev shell]$ C=1+2 [depo@dev shell]$ echo C C [depo@dev shell]$6.可把變量提升為全局環境變量,供其他Shell程序使用
將變量C提升為全局變量:
export C修改helloworld.sh:
#!/bin/bash ? ? echo "helloworld" echo $C運行:
[depo@dev shell]$ ./helloworld.sh helloworld 1+23.特殊變量:$n
(1)基本語法
$n:n為數組,$0代表該腳本名稱,$1-$9代表第一到第九個參數,十以上的參數需要用大括號包含,如果${10}
(2)實操
touch parameter.sh vim parameter.sh #!/bin/bash ? echo "$0 $1 $2 $3" ? ? ?執行該腳本
[depo@dev shell]$ sh parameter.sh abc yfy nihao parameter.sh abc yfy nihao4.特殊變量:$
(1)基本語法
$#:獲取所有輸入參數個數,常用于循環
5.特殊變量:$*、$@
(1)基本語法
$*:這個變量代表命令行中所有的參數,把所有的參數看成一個整體
$@:這個變量也代表命令行中所有的參數,不過把每個參數區分對待
(2)實操
打印輸入的所有參數
vim parameter.sh ? #!/bin/bash ? echo "$0 $1 $2 $3" echo $# echo $* echo $@執行:
[depo@dev shell]$ sh parameter.sh abc yfy nihao parameter.sh abc yfy nihao 3 abc yfy nihao abc yfy nihao5.特殊變量:$?
(1)基本語法
$?:最后一次執行的命令的返回狀態。如果這個變量的值為0,證明上一個命令正確執行
(2)實操
判斷helloworld.sh腳本是否正確執行
[depo@dev shell]$ ./helloworld.sh helloworld 1+2 [depo@dev shell]$ echo $? 0 [depo@dev shell]$四、運算符
1.基本語法
(1)$((運算符))或$[運算符]
(2)expr +,-,*,/,%. 加減乘除取余
2.實操
(1)計算3+2的值
[depo@dev shell]$ expr 2 + 3 5(2)計算(2+3)x4的值
expr一步完成計算
expr `expr 2 + 3` \* 4采用$[運算式]方式
S=$[ (2+4)*4 ]?
總結
以上是生活随笔為你收集整理的Linux之Shell脚本入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shiro在SpringBoot中的应用
- 下一篇: Linux之Shell脚本的条件判断和函