使用 c 程序运行 shell 脚本

使用 c 程序运行 shell 脚本

我编写了一个脚本来在运行时隐藏用户输入,它可以作为一个简单的脚本工作,但我想集成到 c 程序中,但出现以下错误:

warning: missing whitespace after macro name 

error: expected ')' before 'Password' 

有人能告诉我我做错了什么吗?

这是 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;

}

答案1

这是您的代码的修复版本:

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

}

然而,我认为这样做不是好习惯。即使您是从代码内部生成 shellscript 文件,创建单独的 shellscript 文件并直接调用它也要容易得多。

请查看这些以了解更多信息:

相关内容