shell 變數賦值問題
大家寫程式碼的時候, 需要注意一個問題.
尤其是 shell 指令碼的變數,
如果變數 的取值 是由 命令 計算得的的.
比如 :
file=`ls -rt |head -1`
類似這種計算問題 給 變數賦值 .
如果變數還需要參與下一步操作.
需要驗證 這個 $file 是空值 .
比如 rm -rf $file
$file =''
整個目錄會清空
if [ "X$file" = "X" ]
then
##變數為空值
exit
else
do something ..........
fi
if [ -z "$a" ]
then
echo xx
fi
xx
if [ -n "$a" ]
then
echo xx
fi
這裡是有坑的
test 這個命令 關於 -n -z 的說明.
-n STRING
the length of STRING is nonzero
-z STRING
the length of STRING is zero
$ a= $ echo $a $ if [ -n $a ]; then echo xx; fi xx $ if [ -z $a ]; then echo xx; fi xx $ if [ -z "$a" ]; then echo xx; fi xx $ if [ -n "$a" ]; then echo xx; fi -n "$file" 是可以正確判斷 變數長度為 0 . -n $file 不能正確判斷 變數長度為 0 . $ bash $ if [ -z $a ]; then echo xx; fi xx $ if [ A$a = 'A' ]; then echo xx; fi xx $ if [ -n $a ]; then echo xx; fi xx $ if [ -n "$a" ]; then echo xx; fi $ if [ -z "$a" ]; then echo xx; fi xx $ echo $a $ echo "$a" $ echo -e "$a"
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-2854373/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell變數命名與賦值變數賦值
- vue 變數賦值同時改變的問題Vue變數賦值
- Shell變數的作用域問題變數
- 變數的賦值 指標間接賦值變數賦值指標
- php之普通變數賦值、物件賦值、引用賦值的區別PHP變數賦值物件
- 變數的解構賦值變數賦值
- 物件屬性值賦給變數物件變數
- Shell程式設計-04-Shell中變數數值計算程式設計變數
- c#小灶——常量、變數和賦值C#變數賦值
- AC-DMIS 5.3 V變數賦值變數賦值
- 函式呼叫引數變數傳值的問題函式變數
- MySQL中變數的定義和變數的賦值使用MySql變數賦值
- go語言變數的宣告與賦值Go變數賦值
- 列表切片賦值給另一個變數賦值變數
- JS中的變數賦值深入理解JS變數賦值
- 自己對Java中if變數賦值的理解Java變數賦值
- ES6:變數的結構賦值變數賦值
- 問題分享:Js引用型別賦值JS型別賦值
- Javascript 解構賦值,將屬性/值從物件/陣列中取出,賦值給其他變數JavaScript賦值物件陣列變數
- ES6 - 變數的解構賦值解析變數賦值
- JavaScript 同時宣告多個變數並賦值JavaScript變數賦值
- 淺談Python變數賦值的三種方法!Python變數賦值
- ECMAScript 6入門 - 變數的解構賦值變數賦值
- ES6之變數的解構賦值變數賦值
- matlab中怎麼給符號變數賦值Matlab符號變數賦值
- 如何解決自增列賦值的問題賦值
- 數字索引賦值給多個變數簡單表示式索引賦值變數
- 關於變數與‘=’賦值的情況出錯變數賦值
- ES6 -- 變數的解構賦值的用途變數賦值
- 深入ES6 三 變數的解構賦值變數賦值
- Linux Shell變數Linux變數
- shell Bash變數變數
- Shell--變數變數
- Shell程式設計-shell變數2-位置變數和預定義變數程式設計變數
- Shell階段02 shell變數運算(整數運算/小數運算), shell變數案例變數
- ES6入門之變數的解構賦值變數賦值
- Kotlin 變數詳解:宣告、賦值與最佳實踐指南Kotlin變數賦值
- 簡單介紹Lua中的變數與賦值方法變數賦值