我創建了一個簡單的腳本,如下所示,名爲「/ usr/bin/mytool1」並使其可執行。rlwrap無法讀取/寫入自己的歷史記錄
#!/usr/bin/rlwrap /usr/bin/perl
while (1) {
chomp($cmd = <STDIN>);
print "cmd=$cmd\n";
}
問題是,如果我作爲普通用戶運行它,它工作正常。
然後我做了一個「sudo bash」,並以root身份運行mytool1,它也能正常工作。
現在我回來了作爲一個普通用戶,運行命令「mytool1」將使得像錯誤:
rlwrap: cannot read and write /home/user1/.perl_history: Permission denied
我做了一些調查,這裏是我發現:
$ ls -l /home/user1/.perl_history
-rw------- 1 root root 138 Dec 6 18:13 /home/user1/.perl_history
問題這裏是,rlwrap
將以root身份運行時將/home/user1/.perl_history
的所有者更改爲root。
我覺得這是對rlwrap一個錯誤,因爲在Ubuntu的情況下,$HOME
我沒有跑sudo bash
後更改,rlwrap
應該用$USER
構建歷史文件。
您認爲如何?
謝謝@ hans-lub,您的解決方案是最好的!順便說一句,我想你的意思是說'rlwrap --history-filename = $ HOME /。$ {USER} _command_history command'。 – packetie
你是對的!固定... –