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...'