Ich wollte nur fragen, ob es einen Befehl gibt, der mit gängigen Shells (bash, dash, kornshell) funktioniert? Es soll prüfen, ob die line Variable enthält einen beliebigen Teil des Pfades.
if [[ $line =~ "$PWD"$ ]] ;then
Akzeptierte Antwort:
Ja, neuere Versionen von bash können das:
$ pwd
/home/terdon
$ line="I'm in /home/terdon"
$ [[ "$line" =~ "$PWD"$ ]] && echo yes
yes
Die gleiche Syntax funktioniert in zsh und ksh, aber nicht in Bindestrich. Soweit ich weiß, hat Dash keine derartigen Fähigkeiten.
Beachten Sie, dass Ihre Regex prüft, ob die Variable $line endet mit $PWD . Um zu prüfen, ob $PWD Übereinstimmungen irgendwo in $line , entfernen Sie das $ :
$ line="I'm in /home/terdon, are you?"
$ [[ "$line" =~ "$PWD" ]] && echo yes
yes