一覧

2016-08-30 17 views
-1
#!/bin/bash 
GROUPS=$(cut -d: -f1 /etc/group) 
echo "$GROUPS" 

同じコマンド(cut -d: -f1 /etc/group)を実行しながら、私は、通常のユーザーまたは0私はあればルートだと、このコードは、私に1000の出力を提供しますが、すべてのリストを返しますbashスクリプトを経由して、マシン上のすべてのグループマシン上の使用可能なグループ私もgrep "" /etc/groupで試しましたが、同じ結果が得られます。私はここにいないのですか?一覧

+5

注 '$ GROUPS'はすでにいくつかの情報を含む内部変数です – fedorqui

+0

なぜこのコンテンツを変数に取り込むのですか?リダイレクトせずにコマンドを実行しただけでは、コンテンツはstdoutにまっすぐに送られます。 (しかし、あなたが変数に取り込もうとしている場合は、小文字の名前を使用して、シェルやオペレーティングシステムにとって意味のある変数との衝突を避けてください)。 –

+0

これらのコメントの皆さんにお返事いただきありがとうございます。私は変数にそれをキャプチャする必要はありませんが、同時に多くの他の変数を初期化し、コードをもっときれいにするように一緒にすべきだと考えました。私は今から小文字を使用します。 – shaks

答えて

2

適切な方法は、getent group|cut -d: -f1です。これは、/ etc/groupよりも認証方法がいくつかあるためです。例えばsql、ldapなど... 大文字の変数名をシェルスクリプトで使用することはお勧めできません。