私は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
(最初のスペースはオプションです)。シバン(#!
)の後に実行可能ファイルへのパスが続く必要があります。その後に 1つの引数 が続く場合があります。例:
#!/usr/bin/env sh
この場合 /usr/bin/env
は実行可能ファイルです。見る man env
詳細については。
ただ/bin
はディレクトリを指します。
スクリプトが存在するマウントポイントに「noexec」属性がある場合、必要なすべてをシバンでき、それでも機能しませんが、スクリプトを引数としてインタープリターを呼び出すと(ただし、これは、noexecマウントで別のスクリプトを実行しようとはしません)。