![查看所有 Bash/Shell 脚本相关的常见问题解答](https://www.alaica.com/wp-content/uploads/linux-49.png)
我正在编写一个 shell 脚本。我需要找出当前的用户名。如何在 Linux 或类 Unix 操作系统上运行的 Bash 或 Ksh shell 下找到当前用户名?如何确定 Linux 中当前的用户帐户?
您可以使用不是 Bash 内置变量的 $USER 或 $USERNAME 变量。然而,它们在 Bash 启动文件之一中设置为环境变量。您可以使用 id 命令来获取相同的信息。
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | bash/ksh |
美东时间。阅读时间 | 2分钟 |
a] $USER– 当前用户名。
b] $USERNAME– 当前用户名。
c]id命令 – 打印当前用户名。
d]whoami命令 – 显示当前用户名。
句法
要获取当前用户名,请键入:
回显 “ $USER ”
获取当前用户名并将其存储到名为 $u 的 shell 变量中:
u = " $USER " echo "用户名$u "
输出示例:
用户名 vivek
id 命令的语法是:
id -u -n
输出示例:
维维克
要打印数字 UID,请运行:
id -u
输出示例:
1001
以下脚本读取用户名并将其存储到名为 _user _uid 的变量中:
#!/bin/bash _user = " $(id -u -n) " _uid = " $(id -u) " echo "用户名 : $_user " echo "用户名 ID (UID) : $_uid "
外壳脚本示例
确保只有 root 用户可以运行以下脚本:
#!/bin/bash ## 获取 UID uid =$ ( id -u ) ## 检查 [ $uid -ne 0 ] && { echo "只有 root 可以为系统启用 nginx-chroot 环境。" ; 1号出口 ;} ## 以 root 用户继续主要逻辑 ... .. ...
关于 $EUID 的说明
该变量 EUID 是只读的。它扩展为当前用户的有效用户 ID,在 shell 启动时初始化。您可以使用 $EUID 来确定用户是否是 root,语法如下:
# 确定您是否是执行管理任务的 root。 ( ( EUID ) ) && { echo '使用 root 权限运行此脚本。' ; 1号出口 ;} || echo '以 root 身份运行,启动服务...'
Linux中如何确定当前用户帐户
我们可以使用who 命令如下来打印当前用户帐户:
或者使用id 命令:
who
whoami
id -u -n
加起来
我们解释了如何使用各种命令行选项在 Bash 脚本和 shell 提示符中查找并获取当前用户的用户名。通过键入以下命令,请参阅 bash手册页以获取更多信息:
man bash