指令碼基礎
Linux系統中預設使用bash直譯器解釋檔案
在指令碼開頭必須寫宣告,告知作業系統用什麼直譯器進行解釋
在指令碼的第一行,“#!”可以被讀取
Python指令碼預設字尾.py
Python指令碼的語言輸出預設是print(相當於echo)
#!直譯器的絕對路徑(#!/bin/bash)
Vim在檔案中寫入一行一行的命令,sh執行,指令碼會按條執行並不顯示互動介面
向指令碼中加入邏輯,使指令碼可以自行判斷輸入的命令
邏輯:
真邏輯
假邏輯
Shell指令碼中
[]是判斷符號
&&是邏輯與,左邊的語句是真,右邊的才會執行,左邊的語句是假,右邊的不執行
||邏輯或,左邊的語句是假,右邊的才會執行
邏輯整體如何判斷(ech 111 && echo 222 || echo 333)
[ 1 == 1 ]分段引數和資料兩邊各有一個空格,否則無法識別
==表示判斷
=表示賦值
在shell中判斷大小:-gt(great tahn大於)
-eq 等於
-lt(
-ge 大於等於
-le 小於等於
-ne 不等於
腳本里可以接收引數 如:start stop
指令碼的基本傳輸
$* $0 羅列所有引數 $#顯示所有引數的數量
輸入重定向:從外部輸入命令
Cat << FOF 一行一行的輸入資訊,輸入時遇到FOF時停止(可以設定任意字元)。常用來寫指令碼選單
Cat > 檔案絕對路徑 << 結束符 輸入資訊到檔案中,常用來生成配置檔案
強行終止指令碼:exit 在執行到這條命令時強制終止指令碼,只顯示之前的正確命令產生的結果、
[ $# -eq 3 ] && echo “right” && exit || echo “false”
#!/bin/bash
user=”Lassiter”
Passwd=”666666”
read -p “login” user
read -p “password” passwd
[ $User == $user ] && echo “loading” || echo “login false”
[ $Passwd == $passwd ] && echo “loading” || echo “can ont login”
邏輯與可以有很多,邏輯與後不能再加邏輯與
邏輯判斷中的檔案測試引數
-d引數:判斷是不是目錄
[ -d /service/scripts ] || mkdir -p /service/scripts
Cd /service/scripts
檢視這個路徑是不是隻想一個目錄,如果不過還是一個目錄就遞迴建立,然後再cd進入
-e 測試檔案或目錄是否存在
-f 測試是否為檔案
-r/w/x 判斷檔案是否有讀/寫/執行許可權
-z判斷某個字串是不是空
If條件語句
If[條件]
Then 要執行的命令
Else此外
Elif出現除了上個條件之外的條件
Yum倉庫自動掛載指令碼
#!/bin/bash
umount /dev/sr0/
[ -d /media/cdrom ] || mkdir -p /media/cdrom
mount /dev/sr0 /media/cdrom
if [ $? -ne 0 ];then
echo "failed"
exit
fi
[ -d /etc/yum.repos.d ] || medir -p /etc/yum.repos.d
cd /etc/yum.repos.d
mv * /tmp
cat > /etc/yum.repos.d/local.repo <<111
[local]
name=local
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1
111
yum -y clean all && echo "successed"
yum makecache && echo "WP"
echo "GG WP"