Ensucié con variables de entorno se establecen para mi guión en donde this post necesitaba la variable env $ DBUS_SESSION_BUS_ADDRESS para ser configurada, pero no lo haría cuando llamé al script como root. Puede leerlo, pero al final puede verificar si% ENV contiene las variables que necesita y si no las agrega.
De perlvar
%ENV
$ENV{expr}
The hash %ENV contains your current environment. Setting a value in "ENV" changes
the environment for any child processes you subsequently fork() off.
Mi problema era que yo estaba corriendo el guión bajo sudo y que no ha conservado todas las variables env de mi usuario, ¿Está ejecutando el guión bajo sudo o como algunos otro usuario, decir www-data (apache)?
Prueba simple:
[email protected]:~$ perl -e 'print $ENV{q/MY_ENV_VARIABLE/} . "\n"'
y si eso no funciona, entonces tendrá que añadirlo a ENV% en la parte superior de su script.
Esto está mal. 'system' call NO respeta $ SHELL de ninguna manera, forma o forma. Ver la respuesta de Matt Kane – DVK