簡體   English   中英

Bash:比較兩個字符串問題

[英]Bash: comparing two strings issues

我已經編寫了以下bash腳本:

#!/bin/bash
value="Maria Ion Gheorghe Vasile Maria Maria Ion Vasile Gheorghe"
value2="Maria Ion Gheorghe Vasile Maria Maria Ion Vasile Gheorghe"
if [[ "$value"!="$value2" ]]; then
        echo "different" 
else
        echo "match"
fi

問題是,即使存儲在value和value2變量中的字符串沒有不同,我的腳本也將始終顯示“不同”。 bash實際比較什么?

並且,與此問題有關的另一個問題。 假設我們有:

v1 = grep 'a' a.txt
v2 = grep 'a' b.txt

如果grep結果很大(每個變量說超過50000行),我們可以存儲和比較此變量嗎?

在這種情況下,比較運算符周圍需要一個空格:

if [[ "$value" != "$value2" ]]; then
        echo "different" 
else
        echo "match"
fi

如果您不這樣做,那么您只是在測試一個字符串-實際上就是Maria Ion Gheorghe Vasile Maria Maria Ion Vasile Gheorghe!=Maria Ion Gheorghe Vasile Maria Maria Ion Vasile Gheorghe ,條件將始終為true,從而產生different

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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