腳本echo
① windows bat腳本怎麼寫
批處理之家
你就用記事本就可以編輯了。裡面輸入dos命令
最後,另存為*.bat的格式
【 echo 命令 】
打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。
語法
echo [{on|off}] [message]
Sample:@echo off / echo hello world
在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一
些命令到特定的文件中。
【 rem 命令 】
注釋命令,類似於在C語言中的/*--------*/,它並不會被執行,只是起一個注釋的作用,便於別人閱讀
和你自己日後修改。
:: 也具有rem的功能
但::和rem還是有區別的,當關閉回顯時,rem和::後的內容都不會顯示。但是當打開回顯時,rem和rem
後的內容會顯示出來,然而::後的內容仍然不會顯示。
Rem Message
Sample:@Rem Here is the description.
【 pause 命令 】
暫停命令。運行 Pause 命令時,將顯示下面的消息:
Press any key to continue. . .(或:請按任意鍵繼續. . .)
Sample:
@echo off
:begin
G:*.* d:\back
echo 請插入另一張光碟...
pause
goto begin
在這個例子中,驅動器 G 中磁碟上的所有文件均復制到d:\back中。顯示的注釋提示您將另一張光碟
盤放入驅動器 G 時,pause 命令會使程序掛起,以便您更換光碟,然後按任意鍵繼續處理。
【 call 命令 】
從一個批處理程序調用另一個批處理程序,並且不終止父批處理程序。call 命令接受用作調用目標的
標簽。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。
語法
call [[Drive:][Path] FileName ] [:label [arguments]]
參數
[Drive:}[Path] FileName
指定要調用的批處理程序的位置和名稱。
【 start 命令 】
調用外部程序,所有的DOS命令和命令行程序都可以由start命令來調用。
如:start calc.exe 即可打開Windows的計算器。
常用參數:
MIN 開始時窗口最小化
SEPARATE 在分開的空間內開始 16 位 Windows 程序
HIGH 在 HIGH 優先順序類別開始應用程序
REALTIME 在 REALTIME 優先順序類別開始應用程序
WAIT 啟動應用程序並等候它結束
parameters 這些為傳送到命令/程序的參數
執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用程序終止就返回命令提示。如果在命令
腳本內執行,該新行為則不會發生。
【 goto 命令 】
跳轉命令。程序指針跳轉到指定的標簽,從標簽後的第一條命令開始繼續執行批處理程序。
語法:goto label (label是參數,指定所要轉向的批處理程序中的行。)
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果這里的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋
。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
標簽的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標簽,goto
命令就是根據這個:來尋找下一步跳到到那裡。最好有一些說明這樣你別人看起來才會理解你的意圖啊。
【 set 命令 】
顯示、設置或刪除變數。
顯示變數:set 或 set s 前者顯示批處理當前已定義的所有變數及其值,後者顯示所有以s開頭的變數及值。
設置變數:set aa=abcd 此句命令便可向變數aa賦值abcd。如果變數aa已被定義,則aa的值被修改為abcd;若aa尚未定義,則此句命令即可定義新的變數aa,同時為變數aa賦予初始值abcd。
刪除變數:set aa= 此句命令即可刪除變數aa。若變數aa已被定義,則刪除變數aa;若aa尚未定義,則此句命令為實質意義。
需要說明的是,批處理中的變數是不區分類型的,不需要像C語言中的變數那樣還要區分int、float、char等。比如執行set aa=345後,變數aa的值既可以被視為數字345,也可以被視為字元串345。
set命令具有擴展功能,如用作交互輸入、字元串處理、數值計算等,屬於高級命令范疇。
[編輯本段]批處理符號簡介
【 回顯屏蔽 @ 】
表示不顯示@後面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬碟)自然不能讓對方看到你使用的命令啦。
@用法舉例:通過運行批處理文件對比pause和@pause命令即可明了@的效果。
【 重定向1 >與>> 】
將輸出信息重定向到指定的設備或文件。系統默認輸出到顯示器。
如:echo aaaaa>a.txt 即可將本在顯示器上顯示的信息aaaaa輸出到文件a.txt中,屏幕上沒有任何顯示。如果文件a.txt本來已經存在,該命令將首先擦除a.txt中的所有信息,然後寫入信息aaaaa;若a.txt本來就不存在,該命令即可新建一個a.txt文件,並寫入信息aaaaa。
echo aaaaa>>a.txt 類似於echo aaaaa>a.txt。區別在於:如果a.txt本已存在,>a.txt會擦除a.txt中的原有內容,而>>a.txt並不擦除原有內容,僅在a.txt文件的末尾添加信息aaaaa。a.txt不存在時,二者沒有差別。
【 重定向2 < 】
將輸入信息來源重定向為指定的設備或文件。系統默認從顯示器讀取輸入信息。
重定向使用舉例:
=========================================
@echo off
echo abcdefg——這是文件a.txt中的信息>a.txt
echo 請任意輸入字元,以回車結束:
set /p ifo=
cls
echo 【 從屏幕獲得的輸入信息 】
echo %ifo%
set /p ifo=<a.txt
echo 【 從文件a.txt獲得的輸入信息 】
echo %ifo%
pause>nul
=========================================
讀者觀察命令與輸出即可體會到重定向的功能和效果。
【 管道符號 | 】
將管道符號前面命令的輸出結果重定向輸出到管道符號後面的命令中去,作為後面命令的輸入。使用格式為:command_1|command_2
管道符號使用舉例:
=========================================
@echo off
echo aaaa>a.txt
del /p a.txt
pause
=========================================
@echo off
echo aaaa>a.txt
echo y|del /p a.txt
pause
=========================================
對比以上兩個批處理執行結果,讀者即可明白管道符的用法和效果。
需要說明的是,上面del命令添加開關/p只是為了讓讀者明白管道符號的使用方法,實際刪除文件時不加/p開關即可實現無提示直接刪除。
【 轉義符 ^ 】
將特殊符號轉化為一般符號,即剝離特殊符號的特殊地位。特殊符號指:| & > <
比如,如果我們想輸出符號「>」,直接用命令 echo > 是不行的,必須修改為 echo ^> 。其餘幾個特殊符號類似需要有同樣的處理。
轉義字元使用舉例:
=========================================
@echo off
echo aaaa>a.txt
echo 第一句echo執行完畢
echo aaaa^>a.txt
echo 第二句echo執行完畢
pause
=========================================
比較上面的兩句echo,第一句echo將信息aaaa輸出到了文件a.txt,而第二句echo則在直接屏幕上顯示出aaaa>a.txt
【 邏輯命令符 】
邏輯命令符包括:&、&&、||
&-它的作用是用來連接n個DOS命令,並把這些命令按順序執行,而不管是否有命令執行失敗;
&&-當&&前面的命令成功執行時,執行&&後面的命令,否則不執行;
||-當||前面的命令失敗時,執行||後面的命令,否則不執行。
=========================================
@echo off
echo ^|^|
reg add HKCU /v try /f||echo **成功**
reg add HKCU1 /v try /f||echo **失敗**
echo ^&^&
reg delete HKCU /v try /f&&echo **成功**
reg delete HKCU /v try /f&&echo **失敗**
echo ^&
reg delete HKCU /v try /f&echo **成功**
reg delete HKCU /v try /f&echo **失敗**
pause
=========================================
執行reg add或reg delete後,系統會給出執行結果;我們通過echo命令也給出了「執行結果」。對比系統和我們自己給出的結果,既可以驗證邏輯命令的判斷機理。
[編輯本段]常用DOS命令釋義
【 文件夾管理 】
cd 顯示當前目錄名或改變當前目錄。
md 創建目錄。
rd 刪除一個目錄。
dir 顯示目錄中的文件和子目錄列表。
tree 以圖形顯示驅動器或路徑的文件夾結構。
path 為可執行文件顯示或設置一個搜索路徑。
x 復制文件和目錄樹。
【 文件管理 】
type 顯示文本文件的內容。
將一份或多份文件復制到另一個位置。
del 刪除一個或數個文件。
move 移動文件並重命名文件和目錄。(Windows XP Home Edition中沒有)
ren 重命名文件。
replace 替換文件。
attrib 顯示或更改文件屬性。
find 搜索字元串。
fc 比較兩個文件或兩個文件集並顯示它們之間的不同
【 網路命令 】
ping 進行網路連接測試、名稱解析
ftp 文件傳輸
net 網路命令集及用戶管理
telnet 遠程登陸
ipconfig顯示、修改TCP/IP設置
msg 給用戶發送消息
arp 顯示、修改區域網的IP地址-物理地址映射列表
【 系統管理 】
at 安排在特定日期和時間運行命令和程序
shutdown立即或定時關機或重啟
tskill 結束進程
taskkill結束進程(比tskill高級,但WinXPHome版中無該命令)
tasklist顯示進程列表(Windows XP Home Edition中沒有)
sc 系統服務設置與控制
reg 注冊表控制台工具
powercfg控制系統上的電源設置
對於以上列出的所有命令,在cmd中輸入命令+/?即可查看該命令的幫助信息。如find /?
[編輯本段]語句結構釋義
類似於C語言,批處理也有它的語句結構。批處理的語句結構主要有選擇結構(if語句)、循環結構(for語句)等。
【 if語句(選擇結構) 】
if語句實現條件判斷,包括字元串比較、存在判斷、定義判斷等。通過條件判斷,if語句即可以實現選擇功能。
1、字元串比較
if語句僅能夠對兩個字元(串)是否相同、先後順序進行判斷等。其命令格式為:
IF [not] string1 compare-op string2 command1 [else command2]
其中,比較操作符compare-op有以下幾類:
== - 等於
EQU - 等於
NEQ - 不等於
LSS - 小於
LEQ - 小於或等於
GTR - 大於
GEQ - 大於或等於
選擇開關/i則不區分字元串大小寫;選擇not項,則對判斷結果進行邏輯非。
字元串比較示例:
===============================================
@echo off
set str1=abcd1233
set str2=ABCD1234
if %str1%==%str2% (echo 字元串相同!) else (echo 字元串不相同!)
if /i %str1% LSS %str2% (echo str1^<str2) else (echo str1^>=str2)
echo.
set /p choice=是否顯示當前時間?(y/n)
if /i not %choice% EQU n echo 當前時間是:%date% %time%
pause>nul
===============================================
對於最後一個if判斷,當我們輸入n或N時的效果是一樣的,都不會顯示時間。如果我們取消開關/i,則輸入N時,依舊會顯示時間。
另外請注意一下幾個細節:1-echo str1^<str2和echo str1^>=str2;2-echo.。
2、存在判斷
存在判斷的功能是判斷文件或文件夾是否存在。其命令格式為:
IF [NOT] EXIST filename command1 [else command2]
===============================================
@echo off
if exist %0 echo 文件%0是存在的!
if not exist %~df0 (
echo 文件夾%~df0不存在!
) else echo 文件夾%~df0存在!
pause>nul
===============================================
這里注意幾個地方:
1-存在判斷既可以判斷文件也可以判斷文件夾;
2-%0即代表該批處理的全稱(包括驅動器盤符、路徑、文件名和擴展類型);
3-%~df0是對%0的修正,只保留了其驅動器盤符和路徑,詳情請參考for /?,屬高級批處理范疇;
4-注意if語句的多行書寫,多行書寫要求command1的左括弧必須和if在同一行、else必須和command1的右括弧同行、command2的左括弧必須與else同行、command1和command2都可以有任意多行,即command可以是命令集。
3、定義判斷
定義判斷的功能是判斷變數是否存在,即是否已被定義。其命令格式為:
IF [not] DEFINED variable command1 [else command2]
存在判斷舉例:
===============================================
@echo off
set var=111
if defined var (echo var=%var%) else echo var尚未定義!
set var=
if defined var (echo var=%var%) else echo var尚未定義!
pause>nul
===============================================
對比可知,"set var="可以取消變數,收回變數所佔據的內存空間。
4、結果判斷
masm %1.asm
if errorlevel 1 pause & edit %1.asm
link %1.obj
先對源代碼進行匯編,如果失敗則暫停顯示錯誤信息,並在按任意鍵後自動進入編輯界面;否則用link程序連接生成的obj文件,這種用法是先判斷前一個命令執行後的返回碼(也叫錯誤碼,DOS程序在運行完後都有返回碼),如果和定義的錯誤碼符合(這里定義的錯誤碼為1),則執行相應的操作(這里相應的操作為pause & edit %1.asm部分)。
另外,和其他兩種用法一樣,這種用法也可以表示否定。用否定的形式仍表達上面三句的意思,代碼變為:
masm %1.asm
if not errorlevel 1 link %1.obj
pause & edit %1.asm
【 for語句(循環結構) 】
for語句可以實現類似於C語言裡面的循環結構,當然for語句的功能要更強大一點,通過不同的開關可以實現更多的功能。for語句有多個開關,不同開關將會實現不同的功能。
1、無開關
無開關的for語句能夠對設定的范圍內進行循環,是最基本的for循環語句。其命令格式為:
FOR %%variable IN (set) DO command
其中,%%variable是批處理程序裡面的書寫格式,在DOS中書寫為%variable,即只有一個百分號(%);set就是需要我們設定的循環范圍,類似於C語言裡面的循環變數;do後面的command就是循環所執行的命令,即循環體。
無開關for語句舉例:
===============================================
@echo off
for %%i in (a,"b c",d) do echo %%i
pause>nul
===============================================
2、開關/L
含開關/L的for語句,可以根據set裡面的設置進行循環,從而實現對循環次數的直接控制。其命令格式為:
FOR /L %%variable IN (start,step,end) DO command
其中,start為開始計數的初始值,step為每次遞增的值,end為結束值。當end小於start時,step需要設置為負數。
含開關/L的for語句舉例(創建5個文件夾):
===============================================
@echo off
for /l %%i in (1,2,10) do md %%i
pause
===============================================
上例將新建5個文件夾,文件夾名稱依次為1、3、5、7、9。可以發現,%%i的結束值並非end的值10,而是不大於end的一個數。
3、開關/F
含開關/F的for語句具有最強大的功能,它能夠對字元串進行操作,也能夠對命令的返回值進行操作,還可以訪問硬碟上的ASCII碼文件,比如txt文檔等。其命令格式為:
FOR /F ["options"] %%variable IN (set) DO command
其中,set為("string"、'command'、file-set)中的一個;options是(eol=c、skip=n、delims=xxx、tokens=x,y,m-n、usebackq)中的一個或多個的組合。各選項的意義參見for /f。一般情況下,使用較多的是skip、tokens、delims三個選項。
含開關/F的for語句舉例:
===============================================
@echo off
echo **No Options:
for /f %%a in ("1,2,10") do echo a=%%a
echo **Options tokens ^& delims:
for /f "tokens=1-3 delims=," %%a in ("1,2,10") do echo a=%%a b=%%b c=%%c
pause
===============================================
@echo off
echo 本文件夾裡面的文件有:
for /f "skip=5 tokens=3* delims= " %%a in ('dir') do (
if not "%%a"=="<DIR>" if not "%%b"=="位元組" if not "%%b"=="可用位元組" echo %%b
)
pause
===============================================
@echo off
echo 本文件夾裡面的文件有:
dir>c:\file.txt
for /f "skip=5 tokens=3* delims= " %%a in (c:\file.txt) do (
if not "%%a"=="<DIR>" if not "%%b"=="位元組" if not "%%b"=="可用位元組" echo %%b
)
del c:\file.txt
pause
===============================================
對於後面的兩個例子,其中options裡面的delims= 是可以刪除的,因為只要添加了/F開關系統就將delims的值默認為空格。
符號字元串中的最後一個字元星號,
那麼額外的變數將在最後一個符號解析之後
分配並接受行的保留文本。本例中也可以改為4,不過文件名中有空格的文件,只能顯示空格以前部分
同時我們也看到了,for語句的do後面的command也是可以分行的,只需要保證command的左括弧和do在同一行就可以了。
4、開關/D或/R
含開關/D或/R的for語句是與目錄或文件有關的命令,一般情況下很少使用。含開關/R的命令有時候被用於通過遍歷文件夾來查找某一個文件或文件夾,故而列舉此例。
含開關/R的for語句舉例(文件夾遍歷):
===============================================
@echo off
setlocal enabledelayedexpansion
FOR /R d: %%i IN (.) DO (
set dd=%%i
set "dd=!dd:~0,-1!"
echo !dd!
)
pause
exit
===============================================
握了這套命令,那麼你就離批處理達人不遠了!
② Linux Shell鑴氭湰緋誨垪鏁欑▼:緇堢鎵撳嵃鍛戒護璇﹁В
榪欑瘒鏂囩珷涓昏佷粙緇嶄簡Linux Shell鑴氭湰緋誨垪鏁欑▼(浜)錛氱粓絝鎵撳嵃鍛戒護璇﹁В,鏈鏂囩潃閲嶈茶В浜唀cho緇堢鎵撹嫳printf緇堢鎵撳嵃涓や釜鎵撳嵃鍑鴻緭鍑哄懡浠,闇瑕佺殑鏈嬪弸鍙浠ュ弬鑰冧笅
緇堢鎵撳嵃
緇堢鏄浜や簰寮忓伐鍏鳳紝鐢ㄦ埛鍙浠ラ氳繃瀹冧笌shell鐜澧冭繘琛屼氦浜掋傚湪緇堢涓鎵撳嵃鏂囨湰鏄澶у氭暟shell鑴氭湰鍜屽伐鍏鋒棩甯擱渶瑕佹墽琛岀殑鍩烘湰浠誨姟銆傞氳繃緇堢鎵撳嵃錛屼漢浠鍙浠ョ煡閬撶郴緇熺殑榪愯岀姸鎬侊紝榪欏圭敤鎴鋒潵璇存槸鑷沖叧閲嶈佺殑銆
echo緇堢鎵撳嵃
浠g爜濡備笅:
echo "Welcome to Bash"
echo 'Welcome to Bash'
echo Welcome to Bash
浠ヤ笂涓夌嶆柟娉曠殑鏁堟灉鏄涓鏍風殑錛岃緭鍑哄唴瀹歸兘鏄鈥淲elcome to Bash鈥,騫跺湪鏈灝炬坊鍔犳崲琛岀︺傚湪榛樿ゆ儏鍐典笅錛宔cho鍦ㄦ瘡嬈¤皟鐢ㄥ悗浼氭坊鍔犱竴涓鎹㈣岀︼紝鑰屾棤闇鎵嬪姩杈撳叆鎹㈣岀︺傛ゅ勶紝寤鴻鍏繪垚涓縐嶄範鎯錛屽逛簬鍏朵粬鐨勬柟娉曚簡瑙e嵆鍙銆
浣跨敤鍙屽紩鍙鋒椂鐨勯檺鍒
浣跨敤鍙屽紩鍙瘋緭鍑哄瓧絎︿覆鏃訛紝瀛楃︿覆鍐呬笉鑳藉惈鏈夌壒孌婂瓧絎(!),鎴栬呰佸湪鐗規畩瀛楃﹀墠鍔犺漿涔夊瓧絎/銆備嬌鐢ㄥ崟寮曞彿鎴栬呬笉浣跨敤寮曞彿錛屼篃鍙浠ユe父杈撳嚭鐗規畩瀛楃︺
浠g爜濡備笅:
echo "cannot include !" #榪欑嶆儏鍐典笅灝嗕細鎶ラ敊
echo "cannot include /!" #榪欑嶆儏鍐典笅鍙浠ユe父杈撳嚭!
echo cannot include ! #榪欑嶆儏鍐典笅鍙浠ユe父杈撳嚭!
echo 'cannot include !' #榪欑嶆儏鍐典笅鍙浠ユe父杈撳嚭!
浣跨敤鍗曞紩鍙風殑闄愬埗
鍦ㄤ嬌鐢ㄥ崟寮曞彿杈撳嚭瀛楃︿覆鏃訛紝鍙橀噺鏇挎崲灝嗕細澶辨晥銆備嬌鐢ㄥ弻寮曞彿鎴栬呬笉浣跨敤寮曞彿鍙浠ユe父杈撴愮洴鍑鴻鏇挎崲鐨勫彉閲忋
浠g爜濡備笅:
var="abcd"
echo '1234$var' #榪欑嶆儏鍐典笅灝嗚緭鍑 1234$var
echo 1234$var #榪欑嶆儏鍐典笅灝嗚緭鍑 1234abcd
echo "1234$var" #榪欑嶆儏鍐典笅灝嗚緭鍑 1234abcd
涓嶄嬌鐢ㄥ紩鍙鋒椂鐨勯檺鍒
鍦ㄤ笉浣跨敤寮曞彿杈撳嚭瀛楃︿覆鐨勬儏鍐典笅錛屾棤娉曟樉紺哄垎鍙(;)錛屽洜涓哄垎鍙峰湪Bash涓琚鐢ㄤ綔鍛戒護瀹氱晫絎︺備嬌鐢ㄥ崟寮曞彿鎴栬呭弻寮曞彿鍙浠ヨ緭鍑哄垎鍙楓
浠g爜濡備笅:
echo hello;hello #絎涓涓猦ello琚褰撴垚瀛楃︿覆杈撳嚭錛岀浜屼釜琚褰撴垚鍛戒護
printf緇堢鎵撳嵃
printf浣跨敤鐨勫弬鏁板拰C璇璦涓鐨刾rintf鍑芥暟涓鏍鳳紝浣跨敤寮曠敤鏂囨湰鎴栫敱絀烘牸鍒嗛殧鐨勫弬鏁般傚湪printf鍑芥暟涓錛屾垜浠鍙浠ヤ嬌鐢ㄦ牸寮忓寲瀛楃︿覆錛屾寚瀹氬瓧絎︿覆鐨勫藉害銆佸乏鍙沖歸綈鏂瑰紡絳夈傚湪榛樿ゆ儏鍐典笅錛宲rintf涓嶄細鍦ㄨ屽熬娣誨姞鎹㈣岀︼紝闇瑕佹墜鍔ㄦ坊鍔犮
浠g爜濡備笅:
printf "Hello world" #浣跨敤寮曠敤瀛楃
printf "%-5s %-10s %-4s/n" No Name Mark #鎸囧畾瀹藉害鍙婂乏瀵歸綈鏂瑰紡
printf "%-5s %-10s %-4s/n" 1 Sarath 80.3456
宸ヤ綔鍘熺悊
%s,%c,%d,%f閮芥槸鏍煎紡鏇挎崲瀛楃︼紝鍏舵墍瀵瑰簲鐨勫弬鏁板彲浠ョ疆浜庡甫寮曞彿鐨勬牸寮忓瓧絎︿覆涔嬪悗銆
%-5s鎸囨槑浜嗕竴涓鏍煎紡涓哄乏瀵歸綈涓斿藉害涓5鐨勫瓧絎︿覆鏇挎崲錛-琛ㄧず宸﹀歸綈錛岃嫢涓嶆寚瀹氬歸綈鏂瑰紡錛屽垯榛樿ら噰鐢ㄥ彸瀵歸綈鏂瑰紡銆傚藉害鎸囧畾浜嗕繚鐣欑粰鏌愪釜鍙橀噺鐨勫瓧絎︽暟錛屽傛灉瑕佽緭鍑虹殑鍐呭瑰藉害涓嶈凍錛屽垯鐢ㄧ┖鏍煎~鍏咃紝鑻ュ氫簬鎸囧畾瀹藉害錛屽垯瓚呭嚭閮ㄥ垎琚涓㈠純銆
%4.2f琛ㄧず鎸囧畾灝忔暟鍙浠ヤ繚鐣欎袱涓灝忔暟浣嶏紝瑕佹敞鎰忕殑鏄4騫朵笉浠h〃鏁存暟閮ㄥ垎鐨勪綅鏁幫紝涔熶笉浠h〃鏁存暟浣嶅拰灝忔暟浣嶇殑鍜屻
娉ㄦ剰:浣跨敤echo鍜宲rintf鐨勫懡浠ら夐」鏃訛紝瑕佷繚璇侀夐」鍑虹幇鍦ㄥ懡浠よ屽唴鎵鏈夊瓧絎︿覆涔嬪墠錛屽惁鑰匓ash浼氬皢閫夐」瑙嗕負鍙︿竴涓瀛楃︿覆銆
琛ュ厖鍐呭
鍦╡cho涓浣跨敤杞涔夊瓧絎
鍦ㄩ粯璁ゆ儏鍐典笅錛宔cho浼氳嚜鍔ㄥ湪杈撳嚭瀛楃︿覆鏈灝炬坊鍔犳崲琛岀︼紝鍙浠ヤ嬌鐢-n閫夐」鏉ュ拷鐣ョ粨灝劇殑璁╂槑緹℃崲琛岀︺俥cho鍚屾牱鎺ュ彈鍙屽紩鍙峰瓧絎︿覆鍐呯殑杞涔夊簭鍒椾綔涓哄弬鏁般傚傛灉闇瑕佷嬌鐢ㄨ漿涔夊簭鍒楋紝鍒欓噰鐢╡cho -e 鈥滃寘鍚杞涔夊簭鍒楃殑瀛楃︿覆鈥濊繖縐嶅艦寮,鍦╱buntu14.04涓錛屼笉闇瑕佹坊鍔-e閫夐」,鑻ユ坊鍔狅紝鍒-e閫夐」浼氳浣滀負瀛楃︿覆鐨勪竴閮ㄥ垎鍧︽媿杈撳嚭銆
浠g爜濡備笅:
echo "Hello World" #灝嗗湪鏈灝炬坊鍔犳崲琛岀
echo -n "Hello Wordl" #鏈灝句笉浼氭坊鍔犳崲琛岀
echo -e "1/t2/t3" #灝嗚緭鍑 -e 1 2 3
echo "1/t2/t3" #灝嗚緭鍑1 2 3
鎵撳嵃褰╄壊杈撳嚭
鍦ㄧ粓絝涓鐢熸垚棰滆壊杈撳嚭錛屾湁鍔╀簬鎴戜滑浠庡ぇ閲忔枃鏈涓蹇閫熷畾浣嶇壒瀹氱殑淇℃伅錛屾垜浠鍙浠ヤ嬌鐢ㄨ漿涔夊簭鍒楁潵瀹炵幇棰滆壊杈撳嚭銆
姣忕嶆枃鏈棰滆壊閮芥湁瀵瑰簲鐨勯滆壊鐮併
浠g爜濡備笅:
echo -e "/e[1;31m This is red text /e[0m"
echo -e "/e[1;41m This is red background /e[0m"
#ubuntu14.04涓嶆敮鎸佽繖縐嶆柟寮忔敼鍙樻枃鏈鎴栬呰儗鏅棰滆壊
③ bash編程中怎麼對腳本換行
在bash腳本中可以使用echo對輸入內容進行換行或者使用反斜杠對腳本命令進行換行:
1、使用echo -e可以對輸出內容進行換行輸出,例如:
echo-e"abc bcd dsws"
將會輸入:
abc
bcd
dsws
注意:使用echo -n將會忽略輸入語句中的 換行符。
2、當腳本中命令太長的時候,一行不能完成寫下,或者太長影響腳本代碼的美觀性,可以使用對一個命令進行換行執行:
./configure--prefix=/usr/local/softname--enable-xxx-enable-yyy--enable-zzz--enable-aaa-enable-bbb--enable-ccc--enable-mmm-enable-nnn--enable-ppp--enable-qqq
使用換行書寫:
./configure--prefix=/usr/local/softname
--enable-xxx-enable-yyy--enable-zzz--enable-aaa
-enable-bbb--enable-ccc--enable-mmm-enable-nnn
--enable-ppp--enable-qqq