私は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マウントで別のスクリプトを実行してみてください。