J'essaie d'exécuter le script de démarrage Apache, /etc/init.d/httpd
. définitions des variables d'environnement comme celui-ci donnent une erreur:Quel est le problème avec cette syntaxe de script shell?
CONF_FILE=$(APACHE_HOME)/conf/httpd.conf
Il dit "/etc/init.d/httpd: line 15: APACHE_HOME: command not found"
Alors, je l'ai remplacé les parenthèses avec des accolades, et le script a travaillé swimmingly. Ce qui donne? Je ne fais que poser cette question parce que je veux comprendre pourquoi c'est faux, pas comment y remédier. Le shebang est là, et il n'est pas modifié depuis le script shell original, alors pourquoi est-ce qu'il interprète mal les choses?
Pourquoi des crochets? Laissez-les – DonCallisto
'$ (foo)' essaie d'exécuter 'foo' comme une commande, et substitue la sortie de cette commande. APACHE_HOME n'est pas une commande. –
'$()' est une interpolation de commande, '$ {}' est une substitution de variable –