我需要在我的c代码中运行以下bash命令:
read -rsp $'Press spacebar to continue...\n' -d $' '
基本上我需要在某一点暂停并让用户点击空格键继续。我不能使用getchar()或标准库中的任何东西......
我试图使用execl命令,但似乎无法正确格式化。
或许还有另一种方法可以做到这一点......
答案 0 :(得分:1)
添加标题#include <stdlib.h>
并使用system("<Command to pass to system>");
对于windows和linux系统,你可以使用函数和整个命令行以及管道,重定向等也可以使用。
暂停系统使用pause
命令作为system()
for windows
将命令放在shell脚本中,并使用system
函数调用shell脚本。
答案 1 :(得分:0)
在Linux上,system()
函数将其参数传递给/bin/sh
以执行。 /bin/sh
可能与/bin/bash
相同或不同。您需要明确调用bash
以确保支持read
的所有选项。
要从shell提示符执行此操作,您可以键入bash -c ...
,其中...
是包含要执行的命令的单个字符串:
bash -c "read -rsp $'Press spacebar to continue...\n' -d $' '"
现在您需要将整个命令行作为字符串传递给system()
函数。为此,您需要将其用双引号括起来和转义其中的任何双引号或反斜杠:
system("bash -c \"read -rsp $'Press spacebar to continue...\\n' -d $' '\"");