在Linux / Unix Shell脚本中如何获取当前用户名
时间:2019-11-20 08:54:12 来源:igfitidea点击:
问题
在shell脚本中,如何获取当前的用户名?
找出如何在Linux或Unix等操作系统上运行的Bash或Ksh Shell下找到当前用户名?
解决方案
可以使用$USER或$USERNAME变量,它们不是bash内置的变量,但在bash启动文件中进行了设置。
或者可以使用id命令来获取当前用户名。
语法
要获取当前用户名,请键入:
echo "$USER"
获取当前用户名并将其存储到shell变量$u中:
u="$USER" echo "User name $u"
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...'