文字列の後にダッシュを追加するには?

文字列の後にダッシュを追加するには?

grep行の途中で評価する文字列を追加しようとしています。ファイルに表示される可能性がある別のユーザー名を見つけます。しかし、ユーザー名がいくつあるかはわかりません。そのため、ユーザー名のリストを含む配列を繰り返し、grep行で使用する「-eユーザー名-eユーザー名2 -eユーザー名3」などの出力を返します。

しかし、この小さなコードスニペットが問題を引き起こしているようです。私はいくつか試しましたが、UNIXではまだ私はある種のコマンドを渡そうとしていると思います。

eGrepUsernames(){
    returnString="";
    for username in "${usernames[@]}"
    do
        $returnString="$returnString -e $username" #error given, command not found
    done
    echo returnString;
}

後でここで関数を呼び出します。

declare -a activeUsers=$( who | grep `eGrepUsernames` )

この状況で私が何を間違っているのでしょうか?

ベストアンサー1

代わりに、関数は割り当て$returnString中に左側で評価を試みます。

eGrepUsernames(){
    returnString="";
    for username in "${usernames[@]}"
    do
        returnString="$returnString -e $username" # this line changed
    done
    printf '%s ' $returnString;  ## so did this one
}

おすすめ記事