Shell-Script
Bash 腳本權限被拒絕和錯誤的解釋器
我在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 掛載上執行另一個腳本)。