1

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

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

我正在寻找一种方法\n来成为 a <br />,仅在命令中替换它是行不通的。该脚本有效,这意味着它有效地抓取数据并将其显示在我们的 Web 界面中,但用户都在一条线上,这不是预期的结果。

4

2 回答 2

3

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

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

#!/bin/bash
users=`decl . -read /Groups/admin | grep GroupMembers | sed 's# #<br />#g'`
echo "<result>"$users"</result>"
于 2012-11-14T20:16:16.703 回答
1

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

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

这应该可以解决“用户都在一条线上”的问题

于 2012-11-14T20:16:43.223 回答