id コマンドでユーザを調べると
$ id takuya uid=1001(takuya) gid=1001(takuya) groups=1001(takuya),27(sudo)
この結果をついgrep / awk しちゃうが、ちゃんと id コマンドで取れますよ。ってことです。
int の数字だけがほしい
オプションを付けます。
UID (ユーザ番号) をダイレクトに取り出す。
$id -u takuya 1001
GID(グループ番号)を直接取り出す
$id -g takuya 1001
所属するグループIDを全部取り出す
$id -G takuya 1001 27
何に使うの?
uid わかってどうするの?って思うんだけど、シェルスクリプトを書くときにUIDがわかってるとSUDOやLOGINを扱いやすいし、ファイルの所有者を調べやすいのです。
例えばLXCのコンテナで内部で、コマンドを指定ユーザで実行するとき
$ uid=$(lxc exec $NAME -- id -u takuya) $ lxc exec $NAME --user $uid -- whoami takuya
lxcのようにユーザ指定を番号でできるコマンドは多いのです。