c - 传递参数包括从命令行到 C 程序的换行符 (\n)

标签 c command-line newline

我想在 linux 中传递一个 shell 代码(字符串),将换行符作为参数从命令行包含到 C 程序中,例如:./myprogram "number=0 \n while [ $number -lt 10 ]; do \n echo $number \n number=$((number + 1)) \n done

如果我把这个字符串直接放在 C 代码中,并使用 system(command_string),符号 '\n' 被解释为换行符,它会工作得很好。但是如果我像上面一样通过命令行发送这个字符串,它就行不通了。符号 '\n' 不被解释为换行符。我怎样才能解决这个问题?

最佳答案

正如娇气的 ossifrage 的评论所建议的那样,假设您使用的是类 Unix 的 shell 程序(意味着不是 Windows 上的 cmd.exe ......),带引号的字符串中的原始换行符会被解释为它本身并且不会终止命令。

你应该简单地写:

./myprogram "number=0
 while [ \$number -lt 10 ]; do 
 echo \$number  number=\$((number + 1)) 
 done"

当心:否 \在换行之前。如果你放了一个,换行符将被视为延续并被删除。

编辑:但当然$字符必须在 " 之间转义...

关于c - 传递参数包括从命令行到 C 程序的换行符 (\n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28237140/

相关文章:

command-line - Mercurial:命令行上的多行提交消息?

c++ - 无法使用bindgen进行llvm绑定(bind)

当我尝试获取任意 2 个数字的总和时,编译器显示 2147344384...我做错了什么吗?

c - gtk+ win32 线程

c - 如何在 Linux 下获取 C 中的原始命令行?

Windows 相当于 'tail' 命令

linux - 令人费解的 egrep 匹配换行符

python - wxPython 网格中的自动换行和换行

jQuery 工具提示显示选项卡但不显示换行符?

c++ - SHIMVIEW : shiminfo means? 是什么