1. 程式人生 > >指令碼基礎

指令碼基礎

Linux系統中預設使用bash直譯器解釋檔案

在指令碼開頭必須寫宣告,告知作業系統用什麼直譯器進行解釋

在指令碼的第一行,#!”可以被讀取

Python指令碼預設字尾.py

Python指令碼的語言輸出預設是print(相當於echo

#!直譯器的絕對路徑(#/bin/bash

Vim在檔案中寫入一行一行的命令,sh執行,指令碼會按條執行並不顯示互動介面

 

向指令碼中加入邏輯,使指令碼可以自行判斷輸入的命令

邏輯:

真邏輯

假邏輯

 

Shell指令碼中

[]是判斷符號

&&是邏輯與,左邊的語句是真,右邊的才會執行,左邊的語句是假,右邊的不執行

||邏輯或,左邊的語句是假,右邊的才會執行

邏輯整體如何判斷(ech 111 && echo 222 || echo 333

[ 1 == 1 ]分段引數和資料兩邊各有一個空格,否則無法識別

==表示判斷

=表示賦值

shell中判斷大小:-gtgreat tahn大於)

                   -eq 等於

                   -lt

less than 小於)

                   -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 loginuser

read -p passwordpasswd

[ $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"