Aqui está uma versão fixa do seu código:
// 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;
}
No entanto, não acho que seja uma boa prática fazer as coisas dessa maneira . Também é muito mais fácil criar um arquivo Shellscript separado e apenas chamá-lo, mesmo que você gere o arquivo Shellscript dentro do seu código.
Dê uma olhada nestes para mais informações: