Tôi có một kịch bản bắt đầu như thế này
#!/bin/bash
VALKYRIE=~/myProjects/valkyrie
source $VALKYRIE/cluster.conf
nhưng khi tôi chạy nó sẽ trả về
line 2: ~/myProjects/valkyrie/cluster.conf: No such file or directory
nhưng tập tin tồn tại và khi tôi chạy source ~/myProjects/valkyrie/cluster.confnó chạy tốt. Bất kỳ ý tưởng? Tôi đặt VALKYRIEbiến ở nơi khác để mã cứng trong đường dẫn không phải là một tùy chọn.
không, nó không có ích
—
Khôi
Tôi nghĩ rằng đó là một cái gì đó để làm với việc
—
Sparhawk
~không mở rộng đúng cách. Khi tôi chạy tập lệnh của bạn với một đường dẫn giả có chủ ý, lỗi không nói ~, nhưng mở rộng đường dẫn. Bạn có thể thử thay thế ~trong tập lệnh của bạn bằng đường dẫn tuyệt đối không? Ngoài ra, hãy thử chạy sau đây trong một kịch bản echo ~.
Bạn cũng có thể thử
—
Sparhawk
$HOMEthay vì ~.
@Khoi Điều đó giải thích nó.
—
geirha
~/.pam_environmentkhông phải là tập lệnh shell, vì vậy nó không thực hiện những điều phổ biến mà bạn mong đợi từ trình bao, chẳng hạn như mở rộng dấu ngã và mở rộng tham số, do đó, ~cũng không $HOMEđược thay thế. Nếu bạn di chuyển dòng đó để ~/.profilethay thế, và thêm export vào phía trước, nó sẽ hoạt động.
source "${VALKYRIE}/cluster.conf".