2012-11-07 30 views
68

Những gì tôi đang cố gắng làm là tìm thư mục làm việc hiện tại và lưu nó vào một biến, để tôi có thể chạy export PATH=$PATH:currentdir+somethingelse. : s không hoàn toàn chắc chắn nếu chúng có một biến chứa cwd theo mặc định.Bash: biến thư mục hiện tại

+0

'.' dot nên làm việc. – mcalex

+0

vì vậy để lưu nó vào một biến tôi sẽ làm mydir =. ? –

+0

yup vừa được thử nghiệm với mydir =. sau đó ls $ mydir -but nó tương đối vì vậy nó sẽ là pwd từ bất cứ nơi nào bạn chạy nó – mcalex

Trả lời

116

Điều này tiết kiệm đường dẫn tuyệt đối của thư mục làm việc hiện tại vào biến cwd:

cwd=$(pwd) 

Trong trường hợp của bạn, bạn chỉ có thể làm:

export PATH=$PATH:$(pwd)+somethingelse 
+1

vì một số lý do nếu tôi thay đổi sang một thư mục khác, điều này cũng cập nhật biến 'cwd'. Giống như nếu nó gọi hàm 'pwd' mỗi lần ... https://dpaste.de/Kn7F Làm cách nào để tránh điều đó? – tutuca

+0

'$ CWD' có thể là một biến môi trường đặc biệt (dành riêng) trong trình bao của bạn. Thay vào đó, hãy thử một tên khác, chẳng hạn như '$ CWD_MY_VAR' –

+0

Đó chỉ là một tên trình giữ chỗ. Biến của tôi được gọi là 'OLD_PWD' ... – tutuca

3

cho một người họ hàng câu trả lời , sử dụng .

kiểm tra với:

$ myDir=. 
$ ls $myDir 
$ cd/
$ ls $myDir 

Đầu tiên ls sẽ hiển thị cho bạn mọi thứ trong thư mục hiện tại, thư mục thứ hai sẽ hiển thị cho bạn mọi thứ trong thư mục gốc (/).

3

phân công của bạn có thêm $:

export PATH=$PATH:${PWD}:/foo/bar 
1

Thêm một biến thể:

export PATH=$PATH:\`pwd`:/foo/bar 
16

Tôi có sau trong .bash_profile của tôi:

function mark { 
    export $1=`pwd`; 
} 

nên bất cứ lúc nào tôi muốn nhớ một thư mục, tôi có thể chỉ cần gõ, ví dụ đánh dấu là.

Sau đó, khi tôi muốn quay trở lại vào vị trí đó, tôi chỉ cần gõ cd $ có

+0

Hoạt động tốt nhưng đối với đường dẫn có dấu cách, ví dụ: "Google Drive" bạn phải thực hiện '' 'cd" $ foo "' '' cho toàn bộ đường dẫn được đọc – mercergeoinfo

+2

Để giải quyết vấn đề với khoảng trống trong đường dẫn thay đổi '' 'xuất $ 1 =' pwd' '' ' để '' 'export $ 1 =" 'pwd'" '' 'và sau đó khi gọi các đường dẫn như vậy sử dụng' '' cd "$ foo" '' 'thay vì chỉ' '' cd $ foo''' – mercergeoinfo

+0

Điều này thật tuyệt vời! –

0

Bạn có thể dùng vỏ trong xây dựng biến PWD, như thế này:

export PATH=$PATH:$PWD+somethingelse 
Các vấn đề liên quan