Tôi đang tạo một trò chơi đơn giản cho Ubuntu và cập nhật danh sách điểm cao, nó cần một tệp duy nhất trong thời gian chạy, được gọi là 'highscores.bin'.Tôi làm cách nào để có được tên người dùng trong Makefile?
Tôi muốn đặt tập tin này tại
/home/(USER)/.game_name
Tôi đã nghiên cứu một chút và thấy rằng từ bên trong một Makefile tôi có thể nhận biến môi trường $ USER. Vì vậy, trong Makefile, tại 'cài đặt' mục tiêu, tôi đã thêm:
mkdir -p $(DESTDIR)home/$$USER/.game_name
Nhưng khi tôi chạy 'sudo make install', các Makefile cài đặt nó như:
/home/root/.game_name
thế nào có thể tôi có được tên người dùng (không phải root) trong một Makefile?
P .: Tôi đang viết Makefile bằng tay. Không ./configure
P.S.2: Tôi không muốn làm
mkdir -p ~/.game_name
bởi vì tôi muốn để có thể thay đổi DESTDIR nếu tôi muốn cài đặt vào một thư mục tạm thời.
Điều đáng nói là không có gì đảm bảo rằng thư mục chính cho một người dùng cụ thể sẽ có tại '/ home/username' (ví dụ:'homedir của' root' thường là '/ root') - thay vào đó hãy sử dụng biến môi trường' HOME'. – nickgrim
Tại sao địa ngục này lại khó tìm thấy trên google? Việc thiếu thảo luận về kịch bản cụ thể này là đáng lo ngại. –