2010-10-01 83 views
6

我最近決定嘗試學習一些bash腳本,並且作爲一個有趣的練習,我決定創建一個腳本來爲我打開一個每日文件,跑。Bash:嘗試打開文件時的權限被拒絕

它工作得很好,直到我退出並返回到系統後,當我收到一個錯誤

/usr/local/bin/notes: line 45: /home/MY_USERNAME/notes/2010-10-01:Permission denied

Code

我可能是錯的,但這個肯定不會顯得像一些不需要額外權限的東西,是嗎?

編輯器設置爲nano

文件的權限-rw-rw-r--

腳本的權限是-rwxr-xr-x

+1

什麼是您的$ EDITOR設置?文件的權限是什麼樣的?此外,最好在問題本身中包含代碼(在代碼塊中),以便問題歸檔得更好,並且一旦pastebin消失就不會變得毫無意義。 – zigdon 2010-10-01 20:32:25

+0

**所有**都需要權限。沒有「額外」權限。您必須執行'ls -l'或'ls -ld'來查看文件的權限。 – 2010-10-01 20:32:27

+0

您應該更新以包含問題完整性的代碼。 Pastbin ID不再有效。 – Chris 2012-05-16 03:20:01

回答

6

我的猜測是,在

$EDITOR $DAILY_FILENAME 

$EDITOR爲空,所以它試圖執行$DAILY_FILENAME這不是可執行文件。可能在你測試的時候,你手動設置了EDITOR,但沒有將它添加到你的.bashrc(或其他)文件中。使用-x選項來證明它。

+0

是的,我想我沒有永久設置編輯器變量,我只設置了該會話。謝謝 – Michi 2010-10-01 20:49:48

7

檢查與

ls -l /path/to/your/file 

對文件的權限,你應該看到類似

-rw-r--r-- 

r表示可讀,w可寫,x可執行。

第一套適合您的用戶,第二套三套適用於您的團隊,第三套適用於您的用戶。

所以在我的例子中,我所顯示的文件是讀/寫的,只讀的是我的組和其他任何用戶。

使用chmod命令更改權限。

chmod 744 file 

將使您的文件讀取/寫入/執行,並只爲用戶/世界讀取。

0

如果我不得不猜測,我會建議$EDITOR環境變量由於某種原因未定義。它看起來像你的腳本試圖執行筆記文件 - 因爲這是不可執行的,你會得到無益的錯誤信息。

相關問題