如何在jQuery Terminal中实现无多余空格的完整echo命令?
解决jQuery Terminal中echo命令回显多空格问题
当前实现echo命令时,使用...args接收参数并直接执行this.echo(args),会导致回显内容的单词间出现大量空格。这是因为终端将数组参数转为字符串时,默认格式化逻辑会产生多余空格。
解决方案
将参数数组用单个空格连接成字符串后再回显,替换原有的this.echo(args)为this.echo(args.join(' '))即可解决问题。
修改后的完整代码
<link href="https://unpkg.com/jquery.terminal/css/jquery.terminal.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://unpkg.com/jquery.terminal/js/jquery.terminal.min.js"></script> <script> $('body').terminal({ echo: function(...args) { this.echo(args.join(' ')); } }, { checkArity: false, prompt: '>>> ', strings: { commandNotFound: "-Error: unknown command: %s", echoCommand: true, wrongArity: "'%s' is missing one or more arguments", }, pasteImage: true, }); </script>
补充说明
该方案不仅能消除多余空格,还能正确处理带引号的参数输入(例如输入echo 'hello world'会完整回显hello world),完全符合常规echo命令的预期行为。
内容的提问来源于stack exchange,提问作者NotHim
相关产品推荐
相关产品推荐

