2 votos

Encontrar usuario y directorio con un script bash red

Estoy tratando de usar un script para encontrar el nombre de usuario y el directorio home del usuario que está conectado actualmente a un Mac. Esto es lo que tengo, y funciona, pero hay una forma mejor (es decir, más sencillo) para hacerlo?

user=`logname`
userHome="eval echo ~`echo $user`"
userHome=`$userHome`

La escritura casi definitivamente no se ejecutarán por el usuario.

Se trata de Mac OS X 10.6, unido a un Active Directory y está logueado un usuario de red. Por lo que el nombre de usuario no aparece en /etc/passwd .

3voto

jm666 Puntos 4489

Esta secuencia de comandos:

#!/bin/bash
w -h | sort -u -t' ' -k1,1 | while read user etc
do
  homedir=$(dscl . -read /Users/$user NFSHomeDirectory | cut -d' ' -f2)
  echo =$user= =$homedir=
done

va a hacer lo siguiente:

  • encontrar todos los usuarios iniciar sesión (vía ssh también!) w -h o puede utilizar el who comando demasiado
  • ordenar y encontrar usuarios únicossort -u -t' ' -k1,1
  • para cada usuario conectado
    • leer el nombre de usuario
    • encontrar su directorio de inicio desde el daemon DirectoryService mediante el comandodscl
    • imprimir nombre de usuario y su directorio home

2voto

El usuario se almacena en un variable usuario, y la casa se encuentra en casa:

echo user name: $USER, user home: $HOME

Esto se hace automáticamente. Usted no tiene que escribir ningún script para conseguirlos.

1voto

Simon Callan Puntos 1411

De Esta guía Advanced Bash-Scripting aprendí

El formulario $(...) ha superado con comillas simples invertidas para la sustitución de comandos.

La forma $(...) de la sustitución de comandos permite anidar.

Ahora estoy usando:

user=$(logname)
userHome=$(eval echo ~$(echo $user))

0voto

Mark Puntos 6

Suponiendo que logname trabaja, entonces usted puede obtener el directorio como este:

user=$(logname)
userHome=$(awk -F: -v u=$user '$1 == u {print $6}' /etc/passwd)

-2voto

PiPeep Puntos 1455

No estoy seguro si son necesarias todas las complicaciones.

echo $USER
echo ~

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X