Bashコードを理解するのに役立ちましたか? [閉鎖]

Bashコードを理解するのに役立ちましたか? [閉鎖]

このコードは何をしますか?

export user=$(who am i | sed -e 's/ .*//')
echo $user
egrep -i "^www-data" /etc/group >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
    group='www-data'
else
    group='apache'
fi

ベストアンサー1

最初の2行と残りの2つの部分で構成されています。

export user=$(who am i | sed -e 's/ .*//')
echo $user

ログインしたユーザーの名前を印刷します。この構成は、これらのトークン間のコマンド出力が何であるかを割り当て$(...)ます。 2つの引数を使用して呼び出すと、現在ログインしているユーザーのログイン情報(構文が正確であるか完全に異なるものを使用できます)を、スペースで区切られた複数の部分からなる出力とCompositionにパイプされたコマンドとして返します。すべての内容を切り取ります。最初のスペース)。userwhowho am Iwho loves popcornsed

egrep -i "^www-data" /etc/group >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
    group='www-data'
else
    group='apache'
fi

www-dataで始まるグループ名が存在する場合は(大文字と小文字を区別しない)、groupそれ以外の場合は文字列に設定されます。これは、(廃止)コマンドを使用して行の先頭()から大文字と小文字を区別せずに()を検索することによって行われます。一致するものが見つかった場合(前のコマンドの終了値の保存)はゼロであり、そのステートメントの分岐が実行され、それ以外の場合は実行されます。www-dataWWW-datawww-data-hallo/etc/groupgroupapacheegrepgrep -E-iwww-data^/etc/group$?thenifelse

正しい名前を持つグループがあるかどうかを確認するにはwww-data(該当する順序ではなく大文字と小文字を区別する)、次の手順を実行する必要があります。grep -e '^www-data:' /etc/group

おすすめ記事