久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Shell腳本從入門到大神的必備文章

 昵稱11935121 2018-06-23

Shell script(Shell腳本)的工作方式有兩種:

①交互式(Interactive):用戶每輸入一條命令,,然后Shell立即執(zhí)行一次;

②批處理(Batch):由用戶實現(xiàn)編寫好一個完整的Shell腳本,Shell會一次性執(zhí)行腳本中諸多的命令,。

查看系統(tǒng)可用的shell(/etc/shells文件)

Shell腳本從入門到大神的必備文章

Linux系統(tǒng)默認(rèn)的命令行終端解釋器為Bash

Shell腳本從入門到大神的必備文章

Shell腳本文件的格式:

  1. 第一行(一般必須寫明):指定腳本使用的shell(若不寫明也不影響腳本的執(zhí)行,,系統(tǒng)會自動以sh解析腳本)。'#!/bin/bash'聲明文件內(nèi)的語法使用bash的語法,,當(dāng)這個程序被執(zhí)行時,,加載bash的相關(guān)環(huán)境配置文件(一般是non-login shell中的~/.bashrc文件)。

  2. 第二部分的注釋(可寫):程序內(nèi)容的說明,。shell腳本中,,井號#用作批注(除第一行的'#!'外),shell不會解釋以#開頭的行(除第一行bash聲明外),。

  3. 主要環(huán)境變量的聲明(可寫)

  4. 腳本的程序部分,。

  5. 程序執(zhí)行結(jié)束,回傳一個數(shù)值給系統(tǒng)告知執(zhí)行的結(jié)果(可寫,。默認(rèn)命令執(zhí)行成功返回數(shù)值0),。

Shell腳本從入門到大神的必備文章

腳本文件test1.sh的執(zhí)行方式:

  1. 以sh(bash)進程來執(zhí)行腳本文件(用戶不必?fù)碛袑δ_本文件的x權(quán)限)(在子進程中執(zhí)行)

  2. 通過絕對或相對路徑來執(zhí)行腳本文件(用戶須擁有對腳本文件的x權(quán)限)

    (Linux系統(tǒng)中一切都是文件。后綴名.sh僅提示用戶該文件是一個腳本文件,,并不代表該文件是可以被用戶執(zhí)行的,。文件是否可以被執(zhí)行在于用戶是否擁有對該文件的x權(quán)限)(在子進程中執(zhí)行)

  3. 將腳本文件所處的目錄添加到PATH環(huán)境變量中,通過輸入腳本文件名來直接運行(用戶須擁有對腳本文件的x權(quán)限)(在子進程中執(zhí)行)

Shell腳本從入門到大神的必備文章

  1. sh -x:實現(xiàn)shell腳本逐條語句的跟蹤

Shell腳本從入門到大神的必備文章

  1. sh -n:不執(zhí)行腳本,,僅進行語法的檢查

Shell腳本從入門到大神的必備文章

  1. sh -v:執(zhí)行腳本前,,先將腳本的內(nèi)容輸出到屏幕上

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

  1. 通過source命令或小數(shù)點(.)來執(zhí)行腳本文件(在父進程中執(zhí)行)

  1. 用方式①/②/③執(zhí)行test2.sh腳本,執(zhí)行完成后回到命令行模式(父進程)輸出腳本中設(shè)置的變量,,發(fā)現(xiàn)變量并不存在

    (通過上述①/②/③方式(bash(sh),、絕對/相對路徑或者將路徑添加到$PATH中)來運行腳本時,該script會使用一個新的bash環(huán)境(子shell,、子進程)來執(zhí)行腳本內(nèi)的命令,。當(dāng)子進程完成后(腳本執(zhí)行結(jié)束),子進程內(nèi)的各項變量或操作將會消失而不會傳回給父進程中,。)

Shell腳本從入門到大神的必備文章

  1. 若通過source命令或小數(shù)點(.)來執(zhí)行腳本,,該script會在父進程中執(zhí)行。因此,,父進程擁有腳本內(nèi)設(shè)置的變量,、操作等。

Shell腳本從入門到大神的必備文章

bash shell中的數(shù)學(xué)運算:在方括號內(nèi)計算數(shù)學(xué)公式[operation],,結(jié)果賦值為result=$[ operation ],。

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

數(shù)學(xué)運算浮點解決方案:使用bc命令(bash的內(nèi)建計算器)。

選項

作用

-q

不顯示bc計算器的歡迎信息

輸入quit或組合鍵ctrl+d可退出bc計算器

Shell腳本從入門到大神的必備文章

浮點運算是由內(nèi)建變量scale(數(shù)值范圍)控制的,,須將這個值設(shè)置為希望在計算結(jié)果中保留的小數(shù)位數(shù),默認(rèn)值為0,。

Shell腳本從入門到大神的必備文章

在腳本中使用bc命令,,通過命令替換$(),,將輸出結(jié)果賦值給一個變量:

基本格式為 variable=$(echo 'options; expression' | bc)

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

使用內(nèi)聯(lián)輸入重定向<>

基本格式為 varible=$(bc <>

options

statements

expressions

EOF

)

EOF字符串標(biāo)識了重定向給bc命令的數(shù)據(jù)的終止。

Shell腳本從入門到大神的必備文章

bash計算器中創(chuàng)建的變量只在bash計算器中有效,。

Shell腳本從入門到大神的必備文章

Shell中運行的每個命令都使用退出狀態(tài)碼告訴shell它運行完畢,。退出狀態(tài)碼:0-255的整數(shù)值,在命令結(jié)束運行時由命令傳給shell,。變量$?用于保存上個已執(zhí)行命令的退出狀態(tài)碼,。退出狀態(tài)碼可配合exit命令使用。

狀態(tài)碼描述
0命令成功結(jié)束
1一般性未知錯誤
2不適合的shell命令
126命令不可執(zhí)行
127沒找到命令
128無效的退出參數(shù)
128+x與Linux信號x相關(guān)的嚴(yán)重錯誤
130通過ctrl+c終止的命令
255正常范圍之外的退出狀態(tài)碼

Shell script的的默認(rèn)變量(接受用戶參數(shù)的變量)

  • $0:當(dāng)前Shell腳本程序的名稱,;

  • $#:參數(shù)的個數(shù),;

  • $*:所有位置的參數(shù)值;

  • $?:上一條命令的執(zhí)行返回值,;

  • $1,、$2、$3……:第N個位置的參數(shù)值,。

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

test(測試):判斷條件表達式是夠成立,。格式:test [參數(shù)]。單獨執(zhí)行test命令后不會顯示任何信息,。

可通過echo $?輸出上一條命令(test命令)執(zhí)行后的返回結(jié)果,,若為0則表示執(zhí)行(判斷)成功

Shell腳本從入門到大神的必備文章

或通過&&、||來顯示相關(guān)結(jié)果

Shell腳本從入門到大神的必備文章

  • 文件測試所用的參數(shù)

操作符作用
-e file1測試file1文件是否存在(exist)
-d file1測試file1文件是否為目錄類型,,且是否存在(directory)
-f file1測試file1文件是否為一般文件,,且是否存在(file)
-r file1測試當(dāng)前用戶對file1文件是否有讀取權(quán)限(read)
-w file1測試當(dāng)前用戶對file1文件是否有寫入權(quán)限(write)
-x file1測試當(dāng)前用戶對file1文件是否有執(zhí)行權(quán)限(execute)
file1-nt file2測試file1是否比file2新(newer than)(檢查文件日期)
file1-ot file2測試file1是否比file2舊(older than)

  • 整數(shù)測試所用的參數(shù)

操作符作用
n1 -eq n2檢查n1是否等于n2(equal)
n2 -ne n2檢查n1是否不等于n2(not equal)
n1-gt n2檢查n1是否大于n2(greater than)
n1 -lt n2檢查n1是否小于n2(less than)
n1 -le n2檢查n1是否等于或小于n2(less equal)
n1 -ge n2檢查n1是否大于或等于n2(greater equal)

Shell中不應(yīng)使用'=='和'!='進行整數(shù)的比較(會將整數(shù)當(dāng)作字符串來比較)

來自

  • 字符串測試所用的參數(shù)

操作符作用
str1 == str2比較str1與str2字符串的內(nèi)容是否相同
str1 != str2比較str1與str2字符串的內(nèi)容是否不同
-z str1判斷str1字符串長度是否為0(或未被定義)
-n str1判斷str1字符串長度是否為非0
str1 > str2判斷str1是否比str2大(逐位比較字符串的每個字符,按字典順序比較大?。?/td>
str1 <>判斷str1是否比str2小

(使用>,、<(大于號、小于號)進行判斷時必須搭配轉(zhuǎn)義字符>

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

  • 多重條件判斷

操作符作用
test1 -a test2類似于&&,,兩個測試條件同時成立時才回傳true(and)
test1 -o test2類似于||,任一測試條件成立就回傳true(or)
! test1反向狀態(tài)(取反)

[](中括號):判斷符號,。bash shell提供的另一種條件測試方法,,作用同等與test命令,常用于if…then條件判斷式中,。

  • 中括號的兩端,、每個組件間都需要有空格符來分隔。

  • 中括號內(nèi)的變量,、常量,,最好都以雙引號或單引號括起來。

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

[ '$yn' == 'Y' -o '$yn' == 'y' ]也可寫成[ '$yn' == 'Y' ] || [ '$yn' == 'y' ](布爾邏輯能將可能的返回值簡化為TRUE或FALSE類型)

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

Shell腳本從入門到大神的必備文章

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多