Jak mam zrobić dopasowanie do wyrażenia regularnego, jak pokazano poniżej, ale z cytatami wokół ("^ To"), tak jak w prawdziwym świecie "To" będzie ciąg, który może zawierać spacje.Regex dopasowuje ciąg znaków ze spacjami (należy używać cudzysłowów?) W instrukcji if
#!/bin/bash
text="This is just a test string"
if [[ "$text" =~ ^This ]]; then
echo "matched"
else
echo "not matched"
fi
chcę zrobić coś jak
if [[ "$text" =~ "^This is" ]]; then
ale to nie pasuje.
+1 Jest to z pewnością sposób, aby to zrobić. Przedrostki bash używane z '= ~' powinny najczęściej (zawsze?) Być niecytowane. –
Dobrze to słyszeć. Nigdy wcześniej nie używałem wyrażeń regularnych bash, po prostu eksperymentowałem i odkryłem, że \ działało. * Na S.O., jest to poprawne, dopóki nie udowodniono, że jest źle! * –
FWIW, zmieniło się to pomiędzy Bash 3.1 a Bash 3.2. Bash 4.0 ma konfigurowalny 'shopt -s/-u compat31' do przełączania pomiędzy zachowaniami. – ephemient