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.conf
nó chạy tốt. Bất kỳ ý tưởng? Tôi đặt VALKYRIE
biế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
$HOME
thay vì ~
.
@Khoi Điều đó giải thích nó.
—
geirha
~/.pam_environment
khô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 đó để ~/.profile
thay thế, và thêm export
vào phía trước, nó sẽ hoạt động.
source "${VALKYRIE}/cluster.conf"
.