executando o shell script usando o programa c [closed]

-1

Eu escrevi um script para esconder a entrada do usuário durante o tempo de execução, ele funciona como um script simples, mas eu quero integrar no programa c, mas dá os seguintes erros:

warning: missing whitespace after macro name 

error: expected ')' before 'Password' 

alguém pode me dizer o que estou fazendo de errado?

Aqui está o programa c:

#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;

}
    
por Deepansh Kapoor 08.03.2016 / 15:32

1 resposta

1

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:

por KIAaze 08.03.2016 / 16:51