Blog Cover Image

Inspire you to have New thinking, Walk out your unique Road.

有的時候,你無意間遇到的一些故事,會激發你的靈感,改變你的想法,接下來你會用與之前全然不同的觀念去創造屬於你獨特的故事。

Sign @MinaYu.

[技術小筆記] sh/bash 檔 字串判斷回傳0/1

Posted on

這個case是寫一個.sh檔,跑了以後會去找test.txt檔案

在sh 指令中,跑完指令系統回傳0 代表成功, 回傳1代表失敗

我想要做一個find 檔案,有找到就回傳1: 失敗, 沒找到就回傳0: 成功

此為程式碼

判斷有無找到檔案


    file=$(find ./ -name 'DEFAULT')
    if [ -f "$file" ];
    then  
      echo Please Delete {$file}  
      exit 1
    else
      exit 0
      fi

由於標題是寫根據字串長度

這邊有使用數字串的方法

(也是我剛開始笨笨的想說用數得去判斷有沒有找到檔案xD)


    count=$(find ./ -name 'test.txt') 
    if [ ${#count} -gt 0 ]; 
    then 
      echo Please Delete {$count} 
      exit 1 
    else 
      exit 0 
    fi

雖然功用不是這樣,帶我運用了去數回傳回來的答案的字串長度來判斷他是否有傳東西回來

我想用 return 0, return 1來回傳狀態,但會有個警告

大意是說: return 要使用於函數內

所以正確的方法是用 exit 0, exit 1 回傳狀態

$?

這個是系統狀態,所以可以利用

echo $?

來回傳執行sript前後的系統狀態

再來還有可以在sh檔案內,利用 $? 是0/1來做if/ else判斷

參考連結:

https://unix.stackexchange.com/questions/145150/verify-the-length-of-a-variable

http://linux.vbird.org/linux_basic/0340bashshell-scripts.php#test