Windows跟linux的script
有點相似但是因為一些語法上限制
導致寫法上還是會有蠻大差異
筆記一下底下的情況在windows跟linux的寫法
在A.txt這個file裡面判斷式是否Hello這個字串出現
是的話執行成功函數pass(function)
失敗的話執行另外一個函數fail(function)
Windows :
find "Hello" A.txt if errorlevel 1 goto fail_fun pass_fun
: fail_fun Echo Fail :pass_fun Echo Pass |
在windows下搜尋字串的指令為 find
如果找的到則會回傳 0(true)
反之則會回傳 1 (false)
但是在我實際的實驗
發現 if errorlevel 0 goto 這個用法
雖然符合語法
但是實際上卻不能使用
因此只好反過來先用if errorlevel 1 goto去判斷
另外windows的function
以:開頭作為命名 這標記讓我一開始頗不習慣
而到function則是用goto指令
Linux
if grep -q "Hellp" A.txt; then pass_fun else fail_fun fi
pass_fun () { echo pass }
fail_fun () { echo pass } |
在Linux下搜尋字串的指令為 grep
使用參數-q 作用是回傳是否能找地此字串的判斷值
(一邊grep的用法是印出所有相關字串在螢幕上)
在找的到字串的情況下會回傳 0(true)
反之則會回傳 1 (false)
另外linux的function
則是直接在if後面打上function名稱即可