У меня есть удаленная оболочка unix, в которую я часто регистрирую файлы для проверки, но система продолжает сбросить настройки моих локальных пользователей при входе в систему. Я планировал написать код для выполнения списка команд при входе в систему.C++ для командной строки unix
#include<iostream>
#include<stdlib.h>
int main(){
char javah[]="JAVA_HOME=/appl/usr/jdk/jdk1.6.0_20";
char anth[]="ANT_HOME=/appl/usr/ant/instances/1.8.2";
char path[]="PATH=$ANT_HOME/bin:$PATH";
system("bash");
system("cd");
system("cd insurancePPC.11");
system("0x0C");
system("ls");
putenv(javah);
putenv(anth);
putenv(path);
std::cout << "JAVA_HOME=" << getenv("JAVA_HOME");
std::cout << "\n";
std::cout << "ANT_HOME=" << getenv("ANT_HOME");
std::cout << "\n";
std::cout << "PATH=" << getenv("PATH");
std::cout << "\n";
system("cd tools");
std::cout << "command executed successfully...\n";
return 0;
}
Может ли кто-нибудь сказать мне, почему это не работает должным образом?
Как вы планируете запустить этот программа при входе в систему? От, скажем, '~/.profile'? Почему бы просто не поместить команды в '~/.profile' напрямую? – chepner
Что не работает? Программа не выводит измененные переменные среды? –
@chepner, потому что профиль очищается ежедневно – logger