Cách thay thế tên người dùng của tôi trong một tập lệnh bằng biến


9

Tôi muốn tạo một kịch bản cài đặt cho PC ở nhà của tôi và tôi muốn làm cho nó linh hoạt hơn.

Làm thế nào để thay thế tên người dùng của tôi với biến người dùng hiện tại?

Ví dụ: tải xuống: / home / THISUSER / Tải xuống /


2
Bạn có thể sử dụng biến $HOMEcho nhà và $USERcho người dùng :)
Dadexix86

2
@ Dadexix86 bạn cũng có thể gửi câu trả lời. Câu hỏi này quá rẻ để lãng phí thời gian trong các bình luận
Sergiy Kolodyazhnyy

@Serg có, nhưng tôi gần như chắc chắn rằng đó là một bản sao và tôi đang tìm bản gốc :)
Dadexix86

Lưu ý rằng thư mục Tải xuống chỉ tồn tại trên các hệ thống tiếng Anh. Họ có thể được đổi tên nếu người dùng chọn một bản địa hóa khác.
Chỉ huy Byte

tải về chỉ là ví dụ. Tập tin sẽ bị xóa sau khi cài đặt. Nhưng cảm ơn vì thông tin hữu ích
FixXxeR

Câu trả lời:


21

Bạn có thể sử dụng biến $HOMEcho nhà và $USERcho người dùng.

Ví dụ của bạn sau đó có thể $HOME/Downloadshoặc /home/$USER/Downloads.


10
Không phải tất cả các hệ thống đều sử dụng / home cho các thư mục nhà, vì vậy cách tốt nhất là sử dụng $ HOME nếu bạn đang tham khảo thư mục chính.
asmeker

3
@asmeker chúng tôi chỉ giao dịch với Ubuntu và các công cụ phái sinh chính thức. Phiên bản mặc định nào không sử dụng / home?
Rinzwind

4
Chỉ vì trang web này chỉ nói về Ubuntu không có nghĩa là bạn nên tránh viết mã di động và sử dụng các thực tiễn tốt nhất.
asmeker

15

Nếu bạn muốn làm điều này, bạn nên sử dụng ...

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"

vì vậy đó sẽ là

echo $(xdg-user-dir DOWNLOAD)

và nó sẽ hiển thị vị trí tải xuống mặc định (trong trường hợp của tôi /discworld/Downloads). Hoạt động cho tất cả những từ này. Giống ...

echo $(xdg-user-dir DESKTOP)

Đây là cách phổ quát thực sự , luôn hoạt động :)
Jacob Vlijm

Chỉ cần xdg-user-dir DOWNLOADbạn muốn in nó. : P
kos

Làm gì morekhi !isatty(stdin)nào?
mèo

@JacobVlijm Có những hệ thống không cài đặt xdg-user-dirs. Có lẽ ít hơn Ubuntu, nhưng nó chắc chắn ít phổ biến hơn so với sử dụng $ HOME và $ USER.
jazzpi

@jazzpi Vì chúng tôi đang hỏi Ask Ubuntu , các thư mục của người dùng ở trên trong phạm vi câu hỏi là phổ biến, trong khi `$ HOME / Tải xuống` chắc chắn là không.
Jacob Vlijm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.