Linux/Unix Shell脚本:获取当前用户名

时间:2020-01-09 10:37:13  来源:igfitidea点击:

我正在编写shell脚本。
如何找出当前的用户名。
如何在Linux或Unix等操作系统上运行的Bash或Ksh Shell下找到当前用户名?
您可以使用不是Bash内置变量的$USER或$USERNAME变量。
但是,这些已在Bash启动文件之一中设置为环境变量。
您可以使用id命令来获取相同的信息。

  • $USER当前用户名。

  • $USERNAME当前用户名。

  • id命令当前用户名。

句法

要获取当前用户名,请键入:

echo "$USER"

获取当前用户名并将其存储到名为$u的shell变量中:

u="$USER"
echo "User name $u"

输出示例:

User name Hyman

id命令的语法为:

id -u -n

输出示例:

Hyman

要打印数字UID,请运行:

id -u

输出示例:

1001

以下脚本读取用户名并将其存储到名为_user _uid的变量中:

#!/bin/bash
_user="$(id -u -n)"
_uid="$(id -u)"
echo "User name : $_user"
echo "User name ID (UID) : $_uid"

Shell脚本示例

确保只有root用户可以运行以下脚本:

#!/bin/bash
 
## get UID 
uid=$(id -u)
 
## Check for it
[ $uid -ne 0 ] && { echo "Only root may enable the nginx-chroot environment to the system."; exit 1; }
 
## Continue main logic with root user
...
..
...

关于$EUID的注释

此变量EUID为只读。
它扩展为当前用户的有效用户ID,并在Shell启动时进行初始化。
您可以使用以下语法使用$EUID来确定用户是否是root用户:

# Find out if you are root or not for admin tasks.
(( EUID )) && { echo 'Run this script with root priviliges.'; exit 1; } || echo 'Running as root, starting service...'