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