วิธีเปลี่ยนชื่อผู้ใช้ของฉันในสคริปต์ด้วยตัวแปร


9

ฉันต้องการสร้างสคริปต์การติดตั้งสำหรับพีซีที่บ้านของฉันและฉันต้องการทำให้มีความยืดหยุ่นมากขึ้น

จะเปลี่ยนชื่อผู้ใช้ของฉันด้วยตัวแปรผู้ใช้ปัจจุบันได้อย่างไร

ตัวอย่าง: ดาวน์โหลดไปที่: / home / ThisUSER / Downloads /


2
คุณสามารถใช้ตัวแปร$HOMEสำหรับบ้านและ$USERสำหรับผู้ใช้ :)
dadexix86

2
@ dadexix86 คุณอาจโพสต์คำตอบด้วยเช่นกัน คำถามนี้ถูกเกินไปที่จะเสียเวลาในการแสดงความคิดเห็น
Sergiy Kolodyazhnyy

@Serg ใช่ แต่ผมเกือบจะแน่ใจว่ามันเป็นที่ซ้ำกันและฉันกำลังมองหาต้นฉบับหนึ่ง :)
dadexix86

โปรดทราบว่าโฟลเดอร์ดาวน์โหลดนั้นมีอยู่ในระบบภาษาอังกฤษเท่านั้น พวกเขาสามารถได้รับการเปลี่ยนชื่อหากผู้ใช้เลือกการแปลที่แตกต่างกัน
ผู้บัญชาการ Byte

ดาวน์โหลดเป็นตัวอย่างเท่านั้น ไฟล์จะถูกลบหลังจากติดตั้ง แต่ขอขอบคุณสำหรับข้อมูลที่มีประโยชน์
FixXxeR

คำตอบ:


21

คุณสามารถใช้ตัวแปร$HOMEสำหรับบ้านและ$USERสำหรับผู้ใช้

ตัวอย่างของคุณแล้วสามารถหรือ$HOME/Downloads/home/$USER/Downloads


10
ระบบบางระบบใช้ / home สำหรับโฮมไดเรกทอรีดังนั้นวิธีปฏิบัติที่ดีที่สุดคือการใช้ $ HOME หากคุณอ้างถึงโฮมไดเรกทอรี
asmeurer

3
@ asmeurer เราจัดการกับ Ubuntu และอนุพันธ์อย่างเป็นทางการเท่านั้น เวอร์ชันเริ่มต้นใดที่ไม่ใช้ / โฮม?
Rinzwind

4
เพียงเพราะเว็บไซต์นี้เป็นเพียงเกี่ยวกับ Ubuntu ไม่ได้หมายความว่าคุณควรหลีกเลี่ยงการเขียนโค้ดแบบพกพาและใช้แนวทางปฏิบัติที่ดีที่สุด
asmeurer

15

หากคุณต้องการทำสิ่งนี้คุณควรใช้ ...

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"

เพื่อที่จะ

echo $(xdg-user-dir DOWNLOAD)

และมันจะแสดงตำแหน่งการดาวน์โหลดเริ่มต้น (ในกรณีของฉัน/discworld/Downloads) ใช้งานได้กับคำเหล่านี้ทั้งหมด ชอบ ...

echo $(xdg-user-dir DESKTOP)

นี่เป็นวิธีสากลที่แท้จริงใช้ได้เสมอ :)
Jacob Vlijm

เพียงxdg-user-dir DOWNLOADถ้าคุณต้องการที่จะพิมพ์ : P
kos

สิ่งที่ไม่moreควรทำเมื่อ!isatty(stdin)?
แมว

@JacobVlijm มีระบบที่ไม่ได้ติดตั้ง xdg-user-dirs อาจเป็นไปได้น้อยกว่าภายใต้ Ubuntu แต่มันเป็นสากลน้อยกว่าการใช้ $ HOME และ $ USER
jazzpi

@jazzpi เนื่องจากเราอยู่ใน Ask Ubuntuไดเรกทอรีของผู้ใช้ข้างต้นภายในขอบเขตของคำถามจึงเป็นสากลในขณะที่ '$ HOME / Downloads' ไม่แน่นอน
Jacob Vlijm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.