shell編程--變量和if語句的使用


一、什么是Shell?

        shell是外殼的意思,就是操作系統的外殼。我們可以通過shell命令來操作和控制操作系統,比如Linux中的Shell命令就包括ls、cd、pwd等等。總結來說,Shell是一個命令解釋器,它通過接受用戶輸入的Shell命令來啟動、暫停、停止程序的運行或對計算機進行控制。

 

二、什么是腳本?

       腳本就是由Shell命令組成的文件,這些命令都是可執行程序的名字,腳本不用編譯即可運行。它通過解釋器解釋運行,所以速度相對來說比較慢。

 

三、Linux中有哪些腳本解釋器?

       有dash和bash兩種,但dash沒有bash功能全面,所以通常使用bash。

       可以通過命令來查看系統中的腳本解釋器:  ls  -l  /bin/*sh

 

注意:執行之前首先要為腳本文件添加可執行權限,不然就得用root權限才能執行!

添加可執行權限: chmod  +x  name.sh   回車

 

四、shell腳本的執行方式

1)   ./name.sh     這種方式腳本第一行一定要加#!/bin/bash

 

2)    /bin/bash name.sh

 

3)   bash name.sh

 

4)   sh name.sh

 

 

 

 

 

在編譯的時候用空格分割 依次傳入參數

./name.sh 1234 abcd
             參數1 參數2

 

 

 

 

 

 

shell 腳本 常用參數

 

#!/bin/sh         # 在腳本第一行腳本頭 # sh為當前系統默認shell,可指定為bash等shell
sh -x             # 執行過程
sh -n             # 檢查語法
(a=bbk)           # 括號創建子shell運行
basename /a/b/c   # 從全路徑中保留最后一層文件名或目錄
dirname           # 取路徑
$RANDOM           # 隨機數
$$                # 進程號
source FileName   # 在當前bash環境下讀取並執行FileName中的命令  # 等同 . FileName
sleep 5           # 間隔睡眠5秒
trap              # 在接收到信號后將要采取的行動
trap "" 2 3       # 禁止ctrl+c
$PWD              # 當前目錄
$HOME             # 家目錄
$OLDPWD           # 之前一個目錄的路徑
cd -              # 返回上一個目錄路徑
local ret         # 局部變量
yes               # 重復打印
yes |rm -i *      # 自動回答y或者其他
ls -p /home       # 區分目錄和文件夾
ls -d /home/      # 查看匹配完整路徑
time a.sh         # 測試程序執行時間
echo -n aa;echo bb                    # 不換行執行下一句話 將字符串原樣輸出
echo -e "s\tss\n\n\n"                 # 使轉義生效
echo $a | cut -c2-6                   # 取字符串中字元
echo {a,b,c}{a,b,c}{a,b,c}            # 排列組合(括號內一個元素分別和其他括號內元素組合)
echo $((2#11010))                     # 二進制轉10進制
echo aaa | tee file                   # 打印同時寫入文件 默認覆蓋 -a追加
echo {1..10}                          # 打印10個字符
printf '%10s\n'|tr " " a              # 打印10個字符
pwd | awk -F/ '{ print $2 }'          # 返回目錄名
tac file |sed 1,3d|tac                # 倒置讀取文件  # 刪除最后3行
tail -3 file                          # 取最后3行
outtmp=/tmp/$$`date +%s%N`.outtmp     # 臨時文件定義
:(){ :|:& };:                         # 著名的 fork炸彈,系統執行海量的進程,直到系統僵死
echo -e "\e[32m顏色\e[0m"             # 打印顏色
echo -e "\033[32m顏色\033[m"          # 打印顏色
echo -e "\033[0;31mL\033[0;32mO\033[0;33mV\033[0;34mE\t\033[0;35mY\033[0;36mO\033[0;32mU\e[m"    # 打印顏色

 

 

 

 

if語句的使用

 

一、比較數字的大小----雙括號

 

 

 

 

 

二、判斷目錄是否存在   -d

 

 

三、判斷文件是否存在

 

 

四、多個if判斷

 

 

 

 邏輯運算符解析:

邏輯運算符解析:
-f     判斷文件是否存在 eg: if [ -f filename ]
-d     判斷目錄是否存在 eg: if [ -d dir     ]
-eq    等於 應用於:整型比較
-ne    不等於 應用於:整型比較
-lt    小於 應用於:整型比較
-gt    大於 應用於:整型比較
-le    小於或等於 應用於:整型比較
-ge    大於或等於 應用於:整型比較
-a    雙方都成立(and) 邏輯表達式 –a 邏輯表達式
-o    單方成立(or) 邏輯表達式 –o 邏輯表達式
-z    空字符串

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM