Shell-Script

Bash 腳本權限被拒絕和錯誤的解釋器

  • November 23, 2016

我在kali linux 64位。

我創建了一個 python 腳本,它需要 2 個參數來啟動。我不想每次都輸入完全相同的路徑或搜尋我在終端中使用的命令的歷史記錄。所以我決定創建一個簡單的腳本,用它的參數呼叫 python 腳本。

#! /bin bash

python CreateDB.py ./WtfPath ./NoWtfPath/NewSystem/

這與我在終端中使用的命令完全相同。但是,當我嘗試執行腳本文件時收到一條錯誤消息。

bash: ./wtf.sh: /bin: bad interpreter: Permission denied

wtf.sh 具有可執行權限。

怎麼了?

您在這裡有一個空格而不是正斜杠:

#! /bin bash

應該:

#! /bin/bash

或者乾脆

#!/bin/bash

(第一個空格是可選的)。shebang( #!) 後面應該跟一個執行檔的路徑,後面可以跟一個參數,例如,

#!/usr/bin/env sh

在這種情況下/usr/bin/env是執行檔;詳情見man env

只是/bin指一個目錄。

值得注意的是,如果您的腳本所在的掛載點具有“noexec”屬性,那麼您可以隨心所欲地使用它,但它仍然無法正常工作,但是使用腳本作為參數呼叫解釋器將(只要這反過來不會嘗試在 noexec 掛載上執行另一個腳本)。

引用自:https://unix.stackexchange.com/questions/144347