[英]string comparison in bash script
我正在研究bash腳本。 我從網上得到了下面的示例腳本。
#!/bin/bash
str="test"
if [ x$str == x"test" ]; then
echo "hello!"
fi
第五行是什么x( x$str
和x"test"
)? “ x
”有特殊含義嗎?
沒有特別的意義,但如果$str
是空的,那么
if [ $str == "test" ]
會導致在測試中沒有任何替代,它就像這樣
if [ == "test" ]
這將是一個語法錯誤。 在前面添加X會解決這個問題,但是會像這樣引用它
if [ "$str" == "test" ]
是一種更具可讀性和可理解性的方法。
這是為了確保示例中表達式的左側不為空。 如果沒有設置str
,那么條件將是[ == "test" ]
,這會產生錯誤。
您也可以將變量放在雙引號字符中,並完全跳過x
( [ "$str" == "test" ]
),而不是使用單個字母使其不為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.