আমার এটি বাশমুক্ত উপায়ে করার দরকার ছিল, এবং অবাক হয়ে গিয়েছিলাম যে এর কোনও উপযোগ নেই ( পরিবর্তিত কার্যনির্বাহী ডিরেক্টরিতে কমান্ড চালানোর অনুরূপ env(1)
বা এর মতোই sudo(1)
। তাই, আমি একটি সাধারণ সি প্রোগ্রাম লিখেছিলাম যা এটি করে:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
char ENV_PATH[8192] = "PWD=";
int main(int argc, char** argv) {
if(argc < 3) {
fprintf(stderr, "Usage: in <dir> <cmd> [<args>...]\n");
return 1;
}
if(chdir(argv[1])) {
fprintf(stderr, "Error setting working directory to \"%s\"\n", argv[1]);
return 2;
}
if(!getcwd(ENV_PATH + 4, 8192-4)) {
fprintf(stderr, "Error getting the full path to the working directory \"%s\"\n", argv[1]);
return 3;
}
if(putenv(ENV_PATH)) {
fprintf(stderr, "Error setting the environment variable \"%s\"\n", ENV_PATH);
return 4;
}
execvp(argv[2], argv+2);
}
ব্যবহারটি এরকম:
$ in /path/to/directory command --key
~/.folder/command --key
?command
প্রয়োজনীয় কি আপনার বর্তমান ডিরেক্টরি হতে হবে~/.folder
?