fish big मछली खोल में स्ट्रिंग समानता/स्ट्रिंग तुलना के लिए टेस्ट?




fish information in english (2)

कभी-कभी आप खाली तारों या अपरिभाषित चर की जांच करना चाहते हैं, जो मछली में मिथ्या हैं।

set hello "world"
set empty_string ""
set undefined_var  # Expands to empty string

if [ $hello ]
  echo "not empty"  # <==
else
  echo "empty"
end

if [ $empty_string ]
  echo "not empty"
else
  echo "empty"  # <==
end

if [ $undefined_var ]
  echo "not empty"
else
  echo "empty"  # <==
end

आप [ बजाय test उपयोग भी कर सकते हैं।

यदि आप एक गिट शाखा में हैं तो एक व्यावहारिक उदाहरण जाँच कर रहा है।

function git_branch
  echo (command git symbolic-ref HEAD ^/dev/null | sed -e 's|^refs/heads/||')
end

set --local branch_name (git_branch)

if [ $branch_name ]
  echo "$branch_name branch checked out"
else
  echo "not in a git repo"
end

आप मछली में दो तारों की तुलना कैसे करते हैं (जैसे "abc" == "def" अन्य भाषाओं में)?

अब तक, मैं एक संयोजन का उपयोग करता है ( contains पता चलता है कि contains "" $a ही रिटर्न 0 अगर $a खाली स्ट्रिंग है, हालांकि यह मेरे लिए सभी मामलों में काम नहीं लगता) और switch (केवल एक के साथ) case "what_i_want_to_match" और एक case '*' )। हालांकि, इनमें से कोई भी तरीका विशेष रूप से सही नहीं लगता ... हालांकि।


Answer #1
  if [ "abc" != "def" ] 
        echo "not equal"
  end
  not equal

  if [ "abc" = "def" ]
        echo "equal"
  end

  if [ "abc" = "abc" ]
        echo "equal"
  end
  equal

या एक लाइनर:

if [ "abc" = "abc" ]; echo "equal"; end
equal




fish