私はDebian 8.2仮想マシンを実行しており、install.shというファイルを実行しようとしています。
次のコマンドを実行しました。
- sh./install.sh
- sh インストール.sh
- apt-get インストール install.sh
上記の最初の2つのコマンドを実行すると、「構成が存在しません。インストールに失敗しました」というエラーが発生しました。 3番目のコマンドは、次の出力を提供しました。
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package install.sh
E: Couldn't find any package by regex 'install.sh'
ファイルが実行可能であることを確認するために、chmod 700 install.shを実行しました。
この種のエラーに関する情報がまったく見つかりません。
答え1
スクリプトがシェルスクリプトの場合、最初の2つのコマンドはスクリプトを実行します。しかし、Pythonかもしれません。または、ちょっと。それとも全く違う殻です。したがって、安全を維持するために言及する必要はありません。sh
特によく書かれたほとんどのスクリプトは、最初の行に正しいソルバーを指定するためです。
- スクリプトを実行可能にします。
chmod a+rx install.sh
- 今実行してみてください:
./install.sh
答え2
最初のコマンドは正しいです(スクリプトが現在のディレクトリにある限り)。 3番目の順序はまだ遠いです。 2番目は最初と同じことを行います。
スクリプトの実行中:スクリプトを実行できないエラーではありません。スクリプトの一部のコマンドが失敗しました。しかし、台本に何があるのか分からないので、そう言うことができます。
として使用するために実行可能にする必要はありませんsh script_name
。最初の行から始めると#!…
実行可能に設計されています./script_name
。
スクリプトがbash
(または他の高度なシェル)拡張に依存している場合。それでは入らないかもしれませんね。sh
スクリプトをデバッグするには(bashスクリプトの場合)、次のように実行できます。bash -x script_name
実行可能ファイルを拡張しないことをお勧めします。 PythonまたはCで書き換えるには、名前を変更する必要があります。これは良い考えではありません。 (ファイルが実行可能な場合は実行可能です。独自のインタプリタの選択を担当します(参考資料を参照#!
)。