如何在Bash中获得当前用户的用户名?我用whoami吗?
当前回答
获取当前任务的user_struct
#define get_current_user() \
({ \
struct user_struct *__u; \
const struct cred *__cred; \
__cred = current_cred(); \
__u = get_uid(__cred->user); \
__u; \
})
其他回答
使用标准的Unix/Linux/BSD/MacOS命令logname检索登录用户。这忽略了环境和sudo,因为这些都是不可靠的记者。它将始终打印登录用户的名称,然后退出。这个命令大约在1981年就出现了。
My-Mac:~ devin$ logname
devin
My-Mac:~ devin$ sudo logname
Password:
devin
My-Mac:~ devin$ sudo su -
My-Mac:~ root# logname
devin
My-Mac:~ root# echo $USER
root
在命令行中输入
whoami
or
echo "$USER"
对于Bash, KornShell (ksh), sh等。你的许多问题很快就会被回答:
man [function]
要获得您正在使用或通常更方便的系统的文档:
谷歌“man函数”
对于Linux和Unix略有不同的某些事情,这可能会给出不同的结果。
对于这个问题,只需在你的shell中输入“whoami”。
编写脚本:
myvar=$(whoami)
whoami的替代品是id - un -n。
Id -u将返回用户Id(例如root为0)。
获取当前任务的user_struct
#define get_current_user() \
({ \
struct user_struct *__u; \
const struct cred *__cred; \
__cred = current_cred(); \
__u = get_uid(__cred->user); \
__u; \
})