Tôi sử dụng một chương trình vẽ có tên Inkscape, có cả giao diện GUI và giao diện dòng lệnh. Khi được sử dụng trên dòng lệnh, nó có một số lượng lớn các tùy chọn chỉ có thể được kiểm soát thông qua tệp cấu hình dành riêng cho người dùng, được mã hóa cứng thành:
$HOME/.config/inkscape/preferences.xml
Tệp cấu hình này luôn chứa các tùy chọn được sử dụng gần đây nhất trong GUI, có thể là các tùy chọn sai khi tôi viết kịch bản.
Để giải quyết vấn đề này, tôi có tập lệnh của mình lưu một bản sao của tệp cấu hình, thay thế nó bằng một tệp cấu hình tiêu chuẩn, chạy chương trình và sau đó sao chép tệp cấu hình đã lưu lại.
Điều này hoạt động tốt nhưng không thực sự sạch sẽ. Ví dụ, nó sẽ không hoạt động đúng nếu hai phiên bản của tập lệnh đang được chạy đồng thời.
Trên Unix, có cách nào sạch hơn để thực hiện nhiệm vụ này trong việc giả mạo một chương trình để nó lấy tệp cấu hình của nó từ nơi nào đó mà tôi muốn, thay vì từ tên đường dẫn được mã hóa cứng trong chương trình không? Có lẽ một cái gì đó liên quan đến các liên kết, hoặc một cái gì đó như nhà tù BSD?