震驚!shell編程竟如此簡單

概述:

  • 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-99代表第一到第九個參數,十以上的參數,十以上的參數需要用大括號包含,如{10})

    $* :(功能描述:這個變量代表命令行中所有的參數,$*把所有的參數看成一個整體)

    $@:(功能描述:這個變量也代表命令行中所有的參數,不過$@把每個參數區分對待)

    $#:(功能描述:這個變量代表命令行中所有參數的個數)

  • 案例

<-- 計算輸入的參數1和參數2的兩個數的和,並輸出到控制檯 -->
#!/bin/bash 
num1=$1 
num2=$2 
sum=$(( $num1 + $num2)) 
#變量sum的和是num1加num2 
echo $sum 
#打印變量sum的值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章