一.編寫shell腳本基本格式 拿最簡單的 舉例 . !/bin/bash:告訴電腦,使用bash解釋器來執行代碼 echo: 列印 二.運行shell腳本 (推薦使用) 三.註釋 四.定義變數 基本語法 shell 1.定義變數:變數名=變數值 2.撤銷變數:unset 變數名 3.聲明靜態變數 ...
一.編寫shell腳本基本格式
拿最簡單的hello word
舉例
.#!/bin/bash
echo 'hello world'
- .#!/bin/bash:告訴電腦,使用bash解釋器來執行代碼
- echo: 列印
二.運行shell腳本
方法一
(推薦使用)
chmod 777 myshell.sh
#給文件許可權
./myshell.sh
#運行文件
方法2
sh myshell.sh
三.註釋
單行註釋
#內容
多行註釋
:<<!
內容
!
四.定義變數
基本語法
1.定義變數:變數名=變數值
2.撤銷變數:unset 變數名
3.聲明靜態變數:readonly 變數名 #靜態變數不能unset
將命令執行結果返回變數
1.A=`ls -la` 反引號
2.A=$(ls -la) 等價於反引號
系統變數:
$PATH
$HOME
$PWD
$SHELL
$USER
五.設置環境變數
基本語法
export 變數名=變數值 將shell變數輸出給環境變數
source 配置文件名稱 讓修改後的配置信息立即生效
echo $變數值 查看環境變數的值
舉例
vim a.sh
export a = 111
:wq
source a.sh
echo $a
111
六.位置參數變數
主要是給shell腳本傳參數
$n (功能描述:n 為數字,$0 代表命令本身,$1-$9 代表第一到第九個參數,十以上的參數,十以上的參數需要用大括弧包含,如${10})
$* (功能描述:這個變數代表命令行中所有的參數,$*把所有的參數看成一個整體)
$@ (功能描述:這個變數也代表命令行中所有的參數,不過$@把每個參數區分對待)
$#(功能描述:這個變數代表命令行中所有參數的個數)
舉例
a.sh腳本裡面的內容
#!/bin/bash
echo $2 #展示第二個參數
echo $* #這個整體
echo $@ #這個分開for迴圈中才有提現
echo $# #傳參的個數
執行
[root@ywy ~]# sh a.sh 1 2 3
a.sh: line 1: .#!/bin/bash: No such file or directory
2
1 2 3
1 2 3
3
七.預定義變數
就是shell設計者事先已經定義好的變數,可以直接在shell腳本中使用
$$ (功能描述:當前進程的進程號(PID))
$! (功能描述:後臺運行的最後一個進程的進程號(PID))
$? (功能描述:最後一次執行的命令的返回狀態。如果這個變數的值為 0,證明上一個命令正確執行;如果這個變數的值為非 0(具體是哪個數,由命令自己來決定),則證明上一個命令執行失敗)
八.變數的基本運算
運算表達式
1.$((運算式)) #$((1+1)) 不要有空格
2.$[運算式] #$[1+1] 不要有空格
上面兩種運算符號都是普通的不要\註釋掉
這種比較特別
3.`expr m + n` #`expr 1 + 1` 運算符之間必須要有空格
+ #加
- #減
/ #除
% #取餘
\* #乘
\( \) #括弧