概述:
- Shell是一個命令行解釋器,它爲用戶提供了一個向Linux內核發送請求以便運行程序的界面系統級程序,用戶可以用Shell來啓動、掛起、停止甚至是編寫一些程序。
- Shell還是一個功能相當強大的編程語言,易編 寫、易調試、靈活性強。Shell是解釋執行的腳本語言,在Shell中可以調用Linux系統命令。
shell腳本的執行方式
- echo輸出命令
基本語法:echo [選項] [輸出內容]
- 選項
-e:支持反斜線控制的字符轉換
- 案例
[atguigu@hadoop102 sbin]$ echo "helloworld"
helloworld
- 第一個Shell腳本
<-- 需求:創建一個Shell腳本,輸出helloworld -->
[atguigu@hadoop102 datas]$ touch helloworld.sh
[atguigu@hadoop102 datas]$ vi helloworld.sh
<-- 在helloworld.sh中輸入如下內容 -->
#!/bin/bash
echo "helloworld"
-
腳本的常用執行方式
-
第一種:輸入腳本的絕對路徑或相對路徑
<-- 首先要賦予helloworld.sh 腳本的+x權限 -->
[atguigu@hadoop102 datas]$ chmod 777 helloworld.sh
<-- 執行腳本 -->
/root/helloWorld.sh
./helloWorld.sh
- 第二種:bash或sh+腳本(不用賦予腳本+x權限)
sh /root/helloWorld.sh
sh helloWorld.sh
shell中的變量
- Linux Shell中的變量分爲“系統變量”和“用戶自定義變量”,可以通過set命令查看系統變量。
- 系統變量:
$HOME
、$PWD
、$SHELL
、$USER
等等 - 顯示當前shell中所有變量:set
定義變量
- 基本語法:
變量=值
- 變量定義規則
-
變量名稱可以由字母、數字和下劃線組成,但是不能以數字開頭。
-
等號兩側不能有空格
-
變量名稱一般習慣爲大寫
-
雙引號和單引號有區別,雙引號僅將空格脫意,單引號會將所有特殊字符脫意
- 案例
- 定義變量A:
A=8
- 撤銷變量A:
unset A
- 聲明靜態的變量B=2,不能unset:
readonly B=2
- 可把變量提升爲全局環境變量,可供其他shell程序使用:
export 變量名
將命令的返回值賦給變量
-
A=ls -la
:反引號,運行裏面的命令,並把結果返回給變量A -
A=$(ls -la)
:等價於反引號
設置環境變量
- 基本語法:
export 變量名=變量值:(功能描述:設置環境變量的值)
echo $變量名:(功能描述:查詢環境變量的值)
source 配置文件:(功能描述:讓修改後的配置信息立即生效)
- 案例:
<-- 在/etc/profile文件中定義JAVA_HOME環境變量 -->
export JAVA_HOME=/opt/module/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
- 查看環境變量JAVA_HOME的值
[atguigu@hadoop102 datas]$ echo $JAVA_HOME
/opt/module/jdk1.7.0_79
位置參數變量
-
基本語法
$n
:(功能描述:n爲數字,$0代表命令本身,$1-{10})$*
:(功能描述:這個變量代表命令行中所有的參數,$*把所有的參數看成一個整體)$@
:(功能描述:這個變量也代表命令行中所有的參數,不過$@把每個參數區分對待)$#
:(功能描述:這個變量代表命令行中所有參數的個數) -
案例
<-- 計算輸入的參數1和參數2的兩個數的和,並輸出到控制檯 -->
#!/bin/bash
num1=$1
num2=$2
sum=$(( $num1 + $num2))
#變量sum的和是num1加num2
echo $sum
#打印變量sum的值