1

私は、シェルスクリプトを使用してWebインターフェイスの出力を生成できるシステムを使用しています。それはかなりうまく機能しますが、今日の問題の場合、改行ストップが通常行く場所にブレークタグを挿入できる必要があります。私のスクリプトは次のようになります。

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

コマンドで置き換えるだけでは機能しない、\nになる方法を探しています。<br />スクリプトは機能します。つまり、データを効果的に取得してWebインターフェイスに表示しますが、ユーザーはすべて1行に表示されるため、望ましい結果にはなりません。

4

2 に答える 2

3

tr1 つの文字を 1 つの文字にのみ置き換えます (または、 を使用している場合は何も置き換えません-d)。1 つの文字を複数の文字に置き換えるには、別のものを使用する必要があります。

現在のコードに最も似ているオプションは、次の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>"

そして、それは「ユーザーがすべて1行に並んでいる」問題を解決するはずです

于 2012-11-14T20:16:43.223 に答える