GREP -Fehler aufgrund wachsender Variablen mit Räumen
-
23-09-2019 - |
Frage
Ich habe eine Datei namens "physics 1b.sh
". In Bash, wenn ich es versuche
x="physics 1b"
grep "string" "$x".sh
Grep beschwert sich:
grep: physics 1b: No such file or directory.
Aber wenn ich es tue
grep "string" physics\ 1b.sh
Es funktioniert gut. Ich denke, das Problem hat etwas damit zu tun, dass die Variable nicht erweitert wird, um den Backslash, den Grep braucht, um den Raum zu erkennen. Wie kann ich das zum Laufen bringen?
Mit Bash 3.2, Mac OS 10.6.
Bearbeiten:
Egal, das Problem war, dass X darauf eingestellt war " physics 1b"
, aber als ich es tat echo $x
Um den Inhalt zu überprüfen, hackte die Räume vorne ab, damit ich nicht sagen konnte, dass es anders war. Das erste Wege oben funktioniert tatsächlich.
Lösung
Setzen Sie das gesamte Argument in doppelte Zitate ein:
grep "string" "$x.sh"
Andere Tipps
Verwenden Sie dies in Ihrem Skript.
grep "string" "${x}.sh"
ein anderer Weg
grep "string" "${x}.sh"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow