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
}