我使用一个系统,我们可以使用shell脚本为Web界面生成输出。它工作得很好,但是在今天出现问题的情况下,我需要能够插入一个断行标记,其中通常会出现换行符。我的脚本看起来像这样:
#!/bin/bash
users=`decl . -read /Groups/admin | grep GroupMembers | tr ' ' '\n'`
echo "<result>"$users"</result>"
我正在寻找\n
成为<br />
的方法,只需在命令中替换它就无法工作。该脚本有效,这意味着它有效地抓取数据并将其显示在我们的Web界面中,但是用户都在一条线上,这不是理想的结果。
答案 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>"
这应解决“用户全部在一行”问题