簡體   English   中英

bash腳本中的字符串比較

[英]string comparison in bash script

我正在研究bash腳本。 我從網上得到了下面的示例腳本。

#!/bin/bash

str="test"

if [ x$str == x"test" ]; then
  echo "hello!"
fi

第五行是什么x( x$strx"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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM