首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从命令行将参数包括新行字符(\n)到C程序

从命令行将参数包括新行字符(\n)到C程序
EN

Stack Overflow用户
提问于 2015-01-30 13:38:45
回答 2查看 5.3K关注 0票数 4

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

如果我将这个字符串直接放在C代码中,并使用系统(Command_string),符号'\n‘将被解释为换行符,并且它会很好地工作。但是,如果像上面那样通过命令行发送这个字符串,它将无法工作。符号'\n‘不被解释为换行符。我怎样才能解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-30 15:42:33

正如squeamish ossifrage的评论所建议的那样,如果您使用的是类似Unix的shell (在Windows上不使用cmd.exe ),引用字符串中的原始换行符将被解释为本身,而不终止命令。

你应该简单地写:

代码语言:javascript
复制
./myprogram "number=0
 while [ \$number -lt 10 ]; do 
 echo \$number  number=\$((number + 1)) 
 done"

注意:在换行符之前没有\。如果您放置了一个,换行符将被作为一个延续,并将被删除。

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

票数 4
EN

Stack Overflow用户

发布于 2015-01-30 14:53:01

N作为双引号的一部分包括在内。你能试试这个吗?

./myprogram "number=0“\n而$number -lt 10;do”\n "echo $number“\n "number=$((number + 1))”\n "done“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28237140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档