記使用Linux中的 進行條件判斷的坑

2021-08-22 09:55:24 字數 1059 閱讀 1930

今天早上看《鳥哥的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整數值。測試...