Problem beim Isolieren der Umgebungsvariablen in einem Shell-Skript

1466
Not Rick Astley

Ich bin ein Neuling hier, aber Stackoverflow hat mir in der Vergangenheit geholfen.

Ich schreibe ein Bash-Shell-Skript, um ein Makefile (klein beginnend) zu generieren.

echo "\ include \$(GNUSTEP_MAKEFILES)/common.make  APP_NAME = $PRODUCT_NAME $PRODUCT_NAME_OBJC_FILES = source.m  include \$(GNUSTEP_MAKEFILES)/application.make"\ > GNUmakefile 

Die von der IDE, in der diese verwendet wird, festgelegte Umgebungsvariable ist $ PRODUCT_NAME . Bash behandelt dieses Skript offensichtlich als Referenz auf eine Umgebungsvariable $ PRODUCT_NAME_OBJC_FILES . Ich verstehe warum, aber ich weiß nicht, wie ich das umgehen kann. Irgendwelche Hinweise?

$ PRODUCT_NAME wird als angemessen bewertet, wenn der Unterstrich nicht unmittelbar danach folgt, der zusätzliche Speicherplatz jedoch die ganze Reihe durcheinander bringt .

1
Wenn Sie sich mit Bash-Shell-Skripten auskennen möchten, lesen Sie möglicherweise das [Advanced Bash Scripting Guide] (http://www.google.com/search?q=advanced+bash+scripting) (auch als "ABS" bezeichnet). ). JanC vor 13 Jahren 0

1 Antwort auf die Frage

2
David Z

Verwenden $_OBJC_FILES. Die geschweiften Klammern sagen Bash explizit an, wo der Variablenname endet.