Wie kann ich testen, ob eine Zeichenfolge Punkt in Bash ist? Ich habe dies versucht:
if [ "$var" = "." ]
und dies:
if [ "$var" = "\." ]
Aber es funktioniert nicht.
Wie kann ich testen, ob eine Zeichenfolge Punkt in Bash ist? Ich habe dies versucht:
if [ "$var" = "." ]
und dies:
if [ "$var" = "\." ]
Aber es funktioniert nicht.
Mein Code:
#!/bin/bash
var="."
[ $var = "." ] && echo "Yup, it equals '.'"
exit 0
Welche Drucke:
Yup, it equals '.'
Getestet:
tpost@tpost-desktop:~$ /bin/bash -x ./foo.sh
+ var=.
+ '[' . = . ']'
+ echo 'Yup, it equals '\''.'\'''
Yup, it equals '.'
+ exit 0
Sie haben wahrscheinlich etwas Leerraum in $var
(oder vielleicht $var
leer ist?), lassen Sie es durch /bin/sh -x ./yourscript.sh
um zu sehen, was er tatsächlich vergleicht.
Denken Sie daran, \== es un Bashismus funktioniert es nur in Bash. Es ist als Komfort für Leute gedacht, die an ein einzelnes System gewöhnt sind. \= was zu einer Auftrag Das ist in Ordnung, wenn Sie nur die Bash verwenden, aber Sie wissen nie, worauf /bin/sh auf manchen Systemen verweist. Es ist besser, einfach zu verwenden \= und das Problem gänzlich zu vermeiden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.