Bash
bash:/root/bin/hello_world:權限被拒絕
我正在使用 CentOS 7。
- 我這樣寫了我的第一個 bash 腳本。
#!/bin/bash echo 'this is my first code'
我把它保存為hello_world 2. 我在我的根主目錄中創建了一個目錄。
mkdir bin
- 然後我將腳本移動到
~/bin
目錄中。- 然後我這樣做了:
export PATH=~/bin:"$PATH" source ~/bin
- 然後我嘗試使用以下命令執行腳本。
hello_world
但我沒有看到
this is my first code
但我得到了一個bash: /root/bin/hello_world: Permission denied
錯誤。
要使腳本在不使用顯式解釋器(如
bash ~/bin/hello_world
)執行的情況下可執行,腳本文件必須設置其“可執行位”。這是通過chmod
(參見其手冊)完成的:chmod u+x ~/bin/hello_world
這將為文件的所有者設置可執行位。
或者,
chmod +x ~/bin/hello_world
這會根據您目前的
umask
. 假設你umask
是022
(一個常見的預設值),這將使它對所有使用者都可執行。您所做的
source
步驟是胡說八道,應該給您一條錯誤消息(您無法獲取目錄)。如果您需要將 new 設置
PATH
為“永久”,則將該export PATH
行添加到 shell 的啟動文件(~/.bashrc
如果您bash
用作互動式 shell)。此外,避免在互動式根提示符下工作。使用非特權使用者帳戶進行測試和探索,並
sudo
在需要執行管理任務的那幾次中使用該帳戶。