2010-10-12 29 views
9

Đã cố gắng đặt một số bí danh trong tệp .bashrc của tôi. Điều này một ...Làm thế nào để thoát khỏi khoảng trống trong bí danh bash?

export alias umusic="/Volumes/180 gram/Uncompressed/" 

... được các lỗi sau ...

-bash: cd:/Volumes/180: Không có tập tin hoặc thư mục

như vậy. ..khi tôi thử "cd $ umusic".

Tôi đã thử nhiều phương pháp khác nhau để thoát khỏi khoảng trắng trong tên thư mục, không có kết quả. (180 \ gram, 180% 20gram, dấu nháy đơn, dấu ngoặc kép, không có dấu ngoặc kép.) Tôi nhận ra giải pháp đơn giản nhất là đổi tên thư mục thành "180gram", nhưng tôi muốn biết cách giải quyết vấn đề cụ thể này.

Tôi đang ở trên máy Mac, nếu điều đó tạo ra bất kỳ sự khác biệt nào.

Trả lời

14

Việc bạn sử dụng lệnh export đang thực hiện umusic một biến môi trường và không phải là một bí danh . Lệnh export xuất các biến môi trường có tên trên phần còn lại của dòng lệnh, tùy chọn với các giá trị mới. Vì vậy, nó xuất một biến môi trường có tên là alias (có thể không được đặt) và có tên là umusic.

Cho rằng bạn đang mở rộng một biến môi trường, vỏ không thay thế sau:

cd $umusic 
cd /Volumes/180 gram/Uncompressed/ 

mà tạo ra những lỗi mà bạn nhận được bởi vì không gian không được trích dẫn. Nếu thay vào đó bạn làm:

cd "$umusic" 

sau đó mở rộng là

cd "/Volumes/180 gram/Uncompressed/" 

đó là những gì bạn đang mong đợi.

Tuy nhiên, việc sử dụng biến môi trường cho điều này có thể vẫn còn quá nhiều công việc, vì bạn phải báo giá mở rộng. Thay vào đó, hãy thử bí danh này:

alias umusic="cd '/Volumes/180 gram/Uncompressed'" 

mà bạn sẽ chạy với chỉ

$ umusic 
$ pwd 
/Volumes/180 gram/Uncompressed 
+0

Cảm ơn bạn, và một câu hỏi liên quan: Tôi nghĩ bí danh được cho là đóng vai trò là đường dẫn tập tin được viết tắt. Bạn có thể đưa lệnh vào bí danh không? – parisminton

+2

Bí danh vỏ là một lệnh viết tắt; họ không có kết nối cụ thể đến đường dẫn tệp (ngoại trừ việc chúng có thể chứa đường dẫn, như đề xuất của Greg). –

+0

Lưu ý rằng kỹ thuật bí danh 'alias umusic =" cd '/ Volumes/180 gram/Uncompressed' "' không cho phép dấu ngã được hiểu là nhà. Thay vì dấu ngã ('~ /'), bạn phải sử dụng '/ home/yourUsername /' và kỹ thuật này hoạt động tốt. – cameronroytaylor

Các vấn đề liên quan