我最近决定尝试学习一些bash脚本,作为一个有趣的练习,我决定制作一个脚本来打开每日文件,让我在脚本运行时写笔记。
在我收到错误
后退出并重新登录系统之前,它工作正常 /usr/local/bin/notes: line 45: /home/MY_USERNAME/notes/2010-10-01:Permission denied
我可能会弄错,但这肯定不像是不需要额外权限的东西,是吗?
编辑器设置为nano
文件的权限为-rw-rw-r--
脚本的权限为-rwxr-xr-x
答案 0 :(得分:7)
使用
检查文件的权限ls -l /path/to/your/file
你应该看到像这样的东西
-rw-r--r--
表示可读,可写和可执行。
第一组是针对您的用户,第二组是针对您的组,第三组针对的是任何人。
所以在我的例子中,我显示的文件对我来说是可读/写的,只读给我的组和任何其他用户。
使用chmod命令更改权限。
chmod 744 file
将为您创建文件读/写/执行,并且只读取用户/世界。
答案 1 :(得分:7)
我猜是
$EDITOR $DAILY_FILENAME
$EDITOR
为空,因此它正在尝试执行不可执行的$DAILY_FILENAME
。可能在您测试时手动设置EDITOR,但没有将其添加到.bashrc(或其他)文件中。
使用-x
选项进行证明。
答案 2 :(得分:0)
如果我不得不猜测,我会建议$EDITOR
环境变量由于某种原因未定义。看起来您的脚本正在尝试执行notes文件 - 因为这不可执行,您将收到无用的错误消息。