running shell script using c program [closed]

I wrote a script to hide user input during runtime it works as a simple script but i want to integrate into c program but gives following errors:

warning: missing whitespace after macro name
error: expected ')' before 'Password' 

can someone tell me what i'm doing wrong.

Here's the c program:

#include"header.h"
#define SHELLSCRIPT"\
#bin/bash\n\
printf"Password Please:"\n\
stty -echo\n\
read pass\n\
stty echo\n\
printf'\n'\n\
sleep"2"\n\
echo "$pass"\n\
"
int main()
{
puts("Will execute sh with following script:");
puts("SHELLSCRIPT");
puts("Starting now");
system(SHELLSCRIPT);
return 0;
}
3

1 Answer

Here is a fixed version of your code:

// Compile with:
// gcc c-shellscript.c -o c-shellscript
#include <stdio.h>
#include <stdlib.h>
#define SHELLSCRIPT "\
printf 'Password Please:';\n\
stty -echo;\n\
read pass;\n\
stty echo;\n\
printf '\\n';\n\
sleep 2;\n\
echo $pass;"
int main()
{ puts("Will execute sh with following script:"); puts("---------"); puts(SHELLSCRIPT); puts("---------"); puts("Starting now"); system(SHELLSCRIPT); return 0;
}

However, I don't think it is good practice to do things this way. It is also much much easier to create a separate shellscript file and just call that instead, even if you generate the shellscript file from within your code.

Have a look at these for more info:

1

You Might Also Like