Shell指令碼相關

2021-10-21 17:05:27 字數 2061 閱讀 8374

引數處理

說明$#

傳遞到指令碼的引數個數

$*以乙個單字串顯示所有向指令碼傳遞的引數。

如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。

$$指令碼執行的當前程序id號

$!後台執行的最後乙個程序的id號

$@與$*相同,但是使用時加引號,並在引號中返回每個引數。

如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有引數。

$-顯示shell使用的當前選項,與set命令功能相同。

$?顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。

單引號和雙引號的區別:

單引號 』 ':禁用擴充套件,即便 $ 也視為普通字元,可以說是所見即所得,即將單號引號的內容原樣輸出

雙引號 " ":允許擴充套件,以 $ 引用其他變數,把雙引號的內容輸出出來,如果內容中有命令、變數等,會先把變數、命令解析出結果,然後再輸出最終內容來

反撇號 ``:將命令的執行輸出作為變數值,可 用$() 代替

無引號:把內容輸出出來,會將含有空格的字串視為乙個整體輸出,如果內容中有命令、變數等,會先把變數、命令解析出結果,然後再輸出內容來,如果字串中帶有空格等特殊字元,則不能完整的輸出,需要改加雙引號,一般連續的字串,數字

& && | || 的區別

& linux後台執行符號

| linux管道符,將前面內容傳遞到後面

&& 前面執行成功,則執行後面的

|| 前面執行失敗,執行後面的

字串比較

str1 = str2 檢查str1是否和str2相同

str1 != str2 檢查str1是否和str2不同

str1 < str2 檢查str1是否和str2小

str1 > str2 檢查str1是否和str2大

-n str1 檢查str1的長度是否非0

-z str1 檢查str1的長度是否為0

整數值比較

-eq 等於(equal)

-ne 不等於(not equal)

-ge 大於或等於(greater or equal)

-le 小於或等於(lesser or equal)

-gt 大於(greater than)

-lt 小於(lesser than)

常見的中斷及退出控制指令

break:跳出當前所在的迴圈體,執行迴圈體後的語句。

continue:跳過迴圈體內餘下的語句,重新判斷條件以便執行下一次迴圈。exit:退出指令碼,預設返回值是 0。

return:用在函式裡 指定返回值。

shift:用於遷移位置變數,將 $1~$9 依次向左順序移動。

0 表示標準輸入

1>表示標準輸出

2>表示標準錯誤輸出

> 預設為標準輸出重定向,與 1> 相同

2>&1 意思是把 標準錯誤輸出 重定向到 標準輸出.

&>/dev/null 意思是把 標準輸出 和 標準錯誤輸出 都重定向到空

根據檔案內容建立使用者密碼。檔案格式為 test test01 

思路1 判斷使用者是否為root,echo $uid ,root賬戶為0,其餘非0

2 按行讀取檔案,while read line 模式

3 判斷使用者是否存在,id user

4 非互動式建立使用者名稱及密碼 echo ****** | passwd user --stdin

#!/bin/bash

[$uid -ne 0] && exit 1

while read i

do user=`echo $i |awk ''`

pass=`echo $i |awk ''`

id $user || useradd $user 2&1>/dev/null

echo $pass |passwd $user --stdin

done < test.list

cocos creator JS指令碼相關

1 js指令碼執行順序 a 同乙個檔案中,先導入的先載入 b 同一節點上js指令碼載入 不同指令碼中,同一宣告週期函式依順序載入 c 優先順序設定 editor executionorder 預設為0,executionorder 越小,該元件相對其它元件就會越先執行。2 模組化 js匯入和引用 方...

bat指令碼相關

前期準備 將要執行的指令碼名字生成到乙個txt檔案 首先進入dos執行程式的目錄下 輸入dir jmx b filescript.txt 採用dir jmx list.txt 如果選擇第二種方式,會將卷標都寫入文字,導致bat指令碼讀txt檔案時出現異常,所以採用第一種方式。echo off set...

編寫Linux Shell指令碼相關知識

1.表示上一次程式的退出值,用於判斷程式是否執行成功。shell本身的pid processid shell最後執行的後台process的pid 新增到shell的引數個數 2.迴圈訪問檔案的每一行 var while read line do x done 注意 該方法在迴圈體中修改了var變數,...