我试图在 bash 脚本中获取 su
之后的用户名。我使用了以下代码:
user=`who am i`
#user <- "user4035 pts/0 2017-04-02 05:13 (my-hostname)"
userarray=($user)
#userarray <- ["user4035", "pts/0", "2017-04-02 05:13", "(my-hostname)"]
user=${userarray[0]}
#outputs "user4035"
echo $user
它工作正常,但是否可以用更少的命令获得相同的结果?
最佳答案
使用 bash
parameter-expansion 而无需使用数组,
myUser=$(who am i)
printf "%s\n" "${myUser%% *}"
user4035
(或)只使用一个简单的 awk
命令,
who am i | awk '{print $1}'
user4035
即在一个变量中做,
myUser=$(who am i | awk '{print $1}')
printf "%s\n" "$myUser"
(或者)如果您的脚本以 sudo
权限运行,您可以使用此 bash
环境变量,
printf "%s\n" "${SUDO_USER}"
关于bash - 如何获取用空格分隔的字符串的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43167317/