test 命令

###test命令###

转自http://a7419.pixnet.net/blog/post/54409752-linux-test-%E7%94%A8%E6%B3%95-(%26%26-%E5%92%8C-%7C%7C-%E5%B7%AE%E5%88%A5)

在講解test之前

要先了解一個概念

當我們在shell下執行command 或 function 結束都會回傳一個值(我們將值區分為0跟非0,兩種狀況)

例如

$ abc=123

$ echo $? #?問號也是一個變數 , 功能是觀看上一個指令的執行狀況,如正確回傳0,出錯回傳非0值(0-255之間,出錯的值都有意義的可以從這邊除錯)

0 #因為$?前一個執行指令沒有出錯,故回傳值為0

$ 12abc=123 #變數前面不能為數字

-bash: 12abc=123: command not found #發生錯誤

$echo $?

127 #前一個指令執行出錯,故回傳值非0

當要檢查系統上面是否存在的檔案或相關屬性時,test是一個方便的指令

例如

$ A=123 #給變數A數值

$ test $A #查看變數A是否存在

$ echo $? #查看前一個指令是否出錯

0 #正常回傳0

$test $A && echo "ture" || echo "fales" #使用&& || 來判斷變數A是否存在 下面將再補充&& 和 || 的用法

ture #ture 代表存在

$unset A #unset為卸除A的數值

$test $A #再次查看

$echo $?

1 #因A數值已不在,故test查不到該資料 所以回傳非0

$test $A && echo "ture" || echo "fales"

fales #fales代表A不存在

以前面的例子來看test $A && echo "ture" || echo "fales"

當test查詢A變數是否存在時,依查詢的狀況會回傳0或非0

假如為0 代表檔案存在 會顯示出ture 是因為&&為判斷前面一個指令的回傳值 為0時才執行

假如為非0 代表檔案不存在 會顯示出fales 是因為||為判斷前面一個指令的回傳值 為非0時才執行

转载于:https://my.oschina.net/u/240562/blog/120498

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值