Cómo reemplazar mi nombre de usuario en un script con variable


9

Quiero hacer un script de instalación para la PC de mi casa y quiero que sea más flexible.

¿Cómo reemplazar mi nombre de usuario con la variable de usuario actual?

Ejemplo: descargar a: / home / THISUSER / Downloads /


2
Puede usar la variable $HOMEpara el hogar y $USERpara el usuario :)
dadexix86

2
@ dadexix86 también puede publicar una respuesta. Esta pregunta es demasiado barata para perder el tiempo en los comentarios
Sergiy Kolodyazhnyy

@Serg sí, pero estoy casi seguro de que es un duplicado, y estoy buscando el original :)
dadexix86

Tenga en cuenta que la carpeta Descargas solo existe en los sistemas en inglés. Se pueden renombrar si el usuario elige una localización diferente.
Byte Commander

la descarga fue solo por ejemplo. Los archivos se eliminarán después de la instalación. Pero gracias por la útil información
FixXxeR

Respuestas:


21

Puede usar la variable $HOMEpara el hogar y $USERpara el usuario.

Su ejemplo puede ser $HOME/Downloadso /home/$USER/Downloads.


10
No todos los sistemas usan / home para directorios de inicio, por lo que la mejor práctica es usar $ HOME si hace referencia al directorio de inicio.
Asmeurer

3
@asmeurer solo tratamos con Ubuntu y derivados oficiales. ¿Qué versión predeterminada no usa / home?
Rinzwind

44
El hecho de que este sitio sea solo sobre Ubuntu no significa que deba evitar escribir código portátil y usar las mejores prácticas.
Asmeurer

15

Si desea hacer esto, debe usar ...

more ~/.config/user-dirs.dirs
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="/discworld/Desktop"
XDG_DOWNLOAD_DIR="/discworld/Downloads"
XDG_TEMPLATES_DIR="/discworld/Templates"
XDG_PUBLICSHARE_DIR="/discworld/Public"
XDG_DOCUMENTS_DIR="/discworld/Documents"
XDG_MUSIC_DIR="/discworld/Music"
XDG_PICTURES_DIR="/discworld/Pictures"
XDG_VIDEOS_DIR="/discworld/Videos"

entonces eso sería

echo $(xdg-user-dir DOWNLOAD)

y mostrará la ubicación de descarga predeterminada (en mi caso /discworld/Downloads). Funciona para todas estas palabras. Me gusta ...

echo $(xdg-user-dir DESKTOP)

Esta es la forma universal real , siempre funciona :)
Jacob Vlijm

Solo xdg-user-dir DOWNLOADsi quieres imprimirlo. : P
kos

¿Qué hace morecuándo !isatty(stdin)?
gato

@JacobVlijm Hay sistemas donde xdg-user-dirs no está instalado. Probablemente menos en Ubuntu, pero definitivamente es menos universal que usar $ HOME y $ USER.
jazzpi

@jazzpi Dado que estamos en Ask Ubuntu , los directorios de usuarios anteriores dentro del alcance de la pregunta son universales, mientras que `$ HOME / Downloads` definitivamente no lo es.
Jacob Vlijm
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.