首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android mksh的printf的替代方案?

Android mksh的printf的替代方案?
EN

Stack Overflow用户
提问于 2014-03-02 13:11:25
回答 2查看 395关注 0票数 1

我正在写一个在Android的mksh上运行的shell脚本。在Bash中,我可以执行以下操作:

代码语言:javascript
复制
printf -v NUMBER "%d" \'"$CHARACTER"

上面的命令将$CHARACTER转换为带符号的十进制数。但是mksh不支持printf。是否有仅使用mksh /ksh的内部命令的替代解决方案?

EN

回答 2

Stack Overflow用户

发布于 2014-05-27 23:34:03

mksh 确实在一定程度上支持,但不推荐使用。

print -nprsu[n] | -R [-en] print在标准输出上打印其参数,以空格分隔并以换行符结束。-n选项取消换行符。默认情况下,会转换某些C转义。这包括上面的反斜杠扩展中提到的那些,以及'\c',这相当于使用-n选项。可以使用-r选项禁止反斜杠扩展。-s选项打印到历史文件,而不是标准输出;-u选项打印到文件描述符n(如果省略,n默认为1);-p操作打印到协同进程(请参阅上面的协同进程)。在某种程度上,-R选项用于模拟BSD echo(1)命令,除非给出-e选项,否则该命令不会处理'\‘序列。如上所述,-n选项取消尾随换行符。printf格式参数...格式化输出。与printf(1),utili- ty大致相同,除了它使用相同的反斜杠扩展和I/O代码,并像mksh的其余部分一样热处理浮点。这通常不是mksh的一部分;但是,分销商可能已经将其添加为内置的速度hack。不要在新代码中使用。

票数 0
EN

Stack Overflow用户

发布于 2014-11-18 12:42:43

为了让mksh使用内置printf,需要使用printf.c构建mksh,并且需要设置构建环境变量USE_PRINTF_BUILTIN=1,这是不推荐的。然后它将拥有printf。如果你打算发布它,使其便携,那么这可能不是你想要做的。相反,我会使用更安全的"busybox printf“。大多数设备都有busybox,但要真正使脚本可移植,您需要使用mksh的"print“函数。

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

https://stackoverflow.com/questions/22124128

复制
相关文章

相似问题

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