今天早上看《鳥哥的linux私房菜》中shell指令碼編寫章節下的13.3.2 利用判斷符號一節後,按照鳥哥的示例編寫了乙個簡單的指令碼如下:
#!/bin/bash
path=/bin:/usr/bin;/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export path
read -p "please input(y/n):" yn
[ "$yn"=="y" -o "$yn"=="y" ] $$ echo
"ok,continue" && exit
0[ "$yn"=="n" -o "$yn"=="n" ] $$ echo
"ok,interrupt!" && exit
0echo
"i dont know what your choice is" && exit
0
編寫好如上指令碼後,執行chmod -u+a sh03.sh
,然後執行改指令碼,發現不管輸入什麼字元,指令碼都會在變數$yn==y或者y的地方退出。直接在命令列上執行以下命令也是直接返回0:
echo -p "please enter y/n:" yn
n /enter
[ "$yn"=="y" ] && echo
"y" || echo
"n"y
#以下使用「口」代表空格
[口"3"=="2"口] true
[口"3"口==口"2"口] false
注意,使用進行條件判斷的時候,操作符「==」的兩邊必須要加空格!!筆者按照這個格式修改了指令碼,隨後便正常執行了。
之後再去看了看鳥哥的教程,發現在表示式最開始的說明上面,其實是有說明要在操作符兩邊加空格的,但是指令碼中卻沒有(囧),乙個簡單的問題耗費了筆者乙個早上的功夫,以後看書一定要仔細!!!
Nginx中if語句的判斷條件與多條件判斷詳解
一 if語句中的判斷條件 nginx 介紹 1 正規表示式匹配 等值比較 與指定正規表示式模式匹配時返回 真 判斷匹配與否時區分字元大小寫 與指定正規表示式模式匹配時返回 真 判斷匹配與否時不區分字元大vfjwwxi小寫 與指定正規表示式模式不匹配時返回 真 判斷匹配與否時區分字元大小寫 與指定正規...
Linux條件變數的使用
linux執行緒同步之間存在多種機制,條件變數是一種類似作業系統裡提到的生產者 消費者演算法的同步機制,允許執行緒以無競爭的方式等待特定條件的發生。示例偽 void thread1 void void thread2 void 條件變數需要配合互斥量一起使用,互斥量作為引數傳入wait函式,函式把呼...
linux中的條件測試
linux 的shell 中存在一組測試命令,該組命令用於測試某種條件或某幾種條件是否真實存在。測試命令是判斷語句和迴圈語句中條件測試工具,所以,其對於編寫 shell 非常重要。測試命令用於測試表示式的條件的真假。如果測試的條件為真,則返回乙個 0值 如果測試條件為假,將返回乙個非 0整數值。測試...