准备好shell输出HTML

时间:2012-11-14 20:11:28

标签: html bash shell tr

我使用一个系统,我们可以使用shell脚本为Web界面生成输出。它工作得很好,但是在今天出现问题的情况下,我需要能够插入一个断行标记,其中通常会出现换行符。我的脚本看起来像这样:

#!/bin/bash
users=`decl . -read /Groups/admin | grep GroupMembers | tr ' ' '\n'`
echo "<result>"$users"</result>"

我正在寻找\n成为<br />的方法,只需在命令中替换它就无法工作。该脚本有效,这意味着它有效地抓取数据并将其显示在我们的Web界面中,但是用户都在一条线上,这不是理想的结果。

2 个答案:

答案 0 :(得分:3)

tr仅使用单个字符替换单个字符(如果使用-d,则不替换任何内容)。要用多个字符替换单个字符,您需要使用其他字符。

与您当前代码最相似的选项是使用sed代替tr

#!/bin/bash
users=`decl . -read /Groups/admin | grep GroupMembers | sed 's# #<br />#g'`
echo "<result>"$users"</result>"

答案 1 :(得分:1)

$users包含在echo命令的引号中。即将脚本更新为:

#!/bin/bash
users=`decl . -read /Groups/admin | grep GroupMembers | tr ' ' '\n'`
echo "<result>$users</result>"

这应解决“用户全部在一行”问题