ソルバーエラーのため、Bashスクリプトの権限が拒否されました。

ソルバーエラーのため、Bashスクリプトの権限が拒否されました。

私はCaliLinux 64ビットを使用しています。

始めるには、2つのパラメータを必要とするPythonスクリプトを作成しました。毎回同じパスを入力したくなく、端末で使用されている命令履歴を検索したくありません。だから私は引数を使ってPythonスクリプトを呼び出す簡単なスクリプトを作成することにしました。

#! /bin bash

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

これは端末で使用するのと同じコマンドです。ただし、スクリプトファイルを実行しようとするとエラーメッセージが表示されます。

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

wtf.shには実行権限があります。

何が問題なの?

答え1

ここにはスラッシュの代わりにスペースがあります。

#! /bin bash

しなければならない:

#! /bin/bash

または単に

#!/bin/bash

(最初のスペースはオプションです。)shebang(#!)の後にパスが続く必要があります。実行ファイルとして、これは次に来ることができます。議論、例えば、

#!/usr/bin/env sh

この場合は、/usr/bin/env実行可能ファイルをman env参照してください。

ただ/binディレクトリを参照してください。

答え2

スクリプトがあるマウントポイントに "noexec"属性がある場合は、必要なすべてのコマンドを実行できますが、まだ機能しませんが、スクリプトを引数としてインタプリタを呼び出すことは注目に値します。逆の場合は、noexecマウントで別のスクリプトを実行してみてください。

関連情報