Score:3

วิธีกำหนดตัวแปรใน .bashrc เพื่อให้ฉันสามารถใช้เป็นเส้นทางได้

ธง sh

สวัสดี (ขออภัยสำหรับภาษาอังกฤษที่ไม่ดีของฉัน)

ฉันเพิ่งเรียนรู้วิธีตั้งค่าคีย์สำหรับค่าเฉพาะอย่างถาวรโดยใช้นามแฝง:

.bashrc

นามแฝงโปรด = 'sudo'
นามแฝง go='cd'
นามแฝงทำลาย = 'rm -rf'

และใช้งานได้ดีอย่างสมบูรณ์ แต่แล้วฉันก็คิดว่าตัวเองจะสนุกแค่ไหนถ้าฉันสามารถจัดเก็บเส้นทางโปรดของฉัน (เช่น ~/Music) ใน .bashrc เพื่อให้ใช้งานได้ง่ายขึ้น ฉันจึงทำสิ่งนี้:

นามแฝงโปรด = 'sudo'
นามแฝง go='cd'
นามแฝงทำลาย = 'rm -rf'

นามแฝง home = '~'
นามแฝงทำงาน = '~ / เวิร์กสเตชัน'
นามแฝงกลับ = '..'

แต่มันไม่ทำงาน ฉันได้ลองกำหนดตัวแปรดังนี้: ย้อนกลับ='..' และมันก็ไม่ได้ผลเช่นกัน

ฉันรู้ว่าฉันสามารถทำได้ นามแฝง gowork='cd ~/เวิร์กสเตชัน'
แต่ฉันต้องการใช้เส้นทางที่ฉันเก็บไว้ในคำสั่งต่าง ๆ เช่นนี้:

ทำลายงาน

และฉันต้องการทำสิ่งนี้:

ย้อนกลับ/รูปภาพ

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก ขอบคุณพวกคุณ!

Score:9
ธง cn

"นามแฝง" เป็นตัวย่อของคำสั่งเชลล์ คำจำกัดความของคุณ นามแฝง home = '~' ไม่ทำงานเนื่องจากไม่ได้ระบุคำสั่งที่ถูกต้อง:

~$ ~
bash: /home/vanadium: เป็นไดเร็กทอรี

ดังนั้น วิธีการนี้จึงไม่เหมาะที่จะอนุญาตให้คุณแทนที่ชื่อพาธแบบเต็มด้วยชื่อที่สั้นกว่า ซึ่งคุณสามารถใช้ในคำสั่งต่างๆ ได้

วิธีหนึ่งคือการกำหนดตัวแปรแทน อาจไม่จำเป็นต้องกำหนดทางลัดสำหรับโฮมไดเร็กตอรี่ของคุณและสำหรับโฟลเดอร์ก่อนหน้า: ตัวย่อบิวด์อิน ~ และ ..ตามลำดับ สั้นที่สุดเท่าที่จะเป็นไปได้: ฉันแนะนำให้คุณใช้สิ่งเหล่านี้

สำหรับเส้นทางอื่นๆ คุณสามารถกำหนดตัวแปรสภาพแวดล้อม ซึ่งคล้ายกับนามแฝง สามารถทำให้เป็นแบบถาวรได้โดยการรวมไว้ใน .bashrc:

งานส่งออก=~/เวิร์กสเตชัน

ซึ่งสามารถนำไปใช้ในคำสั่งเป็น

ซีดี $ทำงาน

และจะทำงานร่วมกับนามแฝงอื่นๆ ของคุณ เช่น

ทำลาย $work

หมายเหตุหากต้องจัดการกับชื่อพาธที่มีช่องว่าง:

⢠ถ้าชื่อพาธที่กำหนดในตัวแปรมีช่องว่าง คุณจะต้องอ้างอิงตัวแปรเป็น in

ซีดี "$ ทำงาน"

⢠หากคุณกำหนดตัวแปรด้วยการเว้นวรรค คุณต้องเก็บสัญลักษณ์ที่ขยายด้วย bash เช่น ~, ไม่มีเครื่องหมายคำพูด, เช่นเดียวกับใน

งานส่งออก = ~ "/ชื่อพา ธ พร้อมช่องว่าง"
YoloWex avatar
sh flag
ดูเหมือนว่าถูกต้อง แต่มันกลับ ```frnr@frnr-System-Product-Name:~$ go $work bash: cd: ~/Workstation: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว ```
vanadium avatar
cn flag
@bac0n ขอบคุณ ใช่ เครื่องหมายคำพูดป้องกันไม่ให้ "~" ถูกขยายขณะตั้งค่าตัวแปร: ~ จากนั้นจะกลายเป็นส่วนตามตัวอักษรของตัวแปร และไม่ถูกขยายเมื่อดึงค่าในคำสั่ง แก้ไขแล้ว!
YoloWex avatar
sh flag
ทิ้งคำพูดทำงาน !! ขอบคุณมาก ! พวกคุณคือผู้ช่วยชีวิต @วาเนเดียม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา