LINUX.ORG.RU

печатает ${VAR1}, а не значение VAR1.

echo не понимает ${VAR1}, когда ты пишеш echo $VAR в консоли, переменную подставляет bash, а не echo

anonymous
()

getenv уже советовали, а еще можно так:

#include <stdio.h>
 
int main (int argc, char* argv[], char* env[]) {
        int i;
        for (i=0; env[i] != NULL; i++)
                if (strncmp (env[i], "VAR1", 4) == 0) {
                        printf ("%s\n", env[i]);
                }
        return 0;
}

Lavos ★★★★★
()
Последнее исправление: Lavos (всего исправлений: 1)
Ответ на: комментарий от anonymous

Поэтому надо

execl("/bin/bash", "/bin/bash", "-c","echo \"$VAR1\"", 0);

А чтобы получить значение в программе, надо использовать пайп.

NeXTSTEP ★★
()
Ответ на: комментарий от NeXTSTEP

Я понял, и с getevn, и с env[], и почему у меня код не работал )

eiler13
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.