.shファイルを実行してみてください。ただし、エラーが発生しました:設定がありません:インストールに失敗しました。

.shファイルを実行してみてください。ただし、エラーが発生しました:設定がありません:インストールに失敗しました。

私は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特によく書かれたほとんどのスクリプトは、最初の行に正しいソルバーを指定するためです。

  1. スクリプトを実行可能にします。chmod a+rx install.sh
  2. 今実行してみてください:./install.sh

答え2

最初のコマンドは正しいです(スクリプトが現在のディレクトリにある限り)。 3番目の順序はまだ遠いです。 2番目は最初と同じことを行います。

スクリプトの実行中:スクリプトを実行できないエラーではありません。スクリプトの一部のコマンドが失敗しました。しかし、台本に何があるのか​​分からないので、そう言うことができます。

として使用するために実行可能にする必要はありませんsh script_name。最初の行から始めると#!…実行可能に設計されています./script_name

スクリプトがbash(または他の高度なシェル)拡張に依存している場合。それでは入らないかもしれませんね。sh

スクリプトをデバッグするには(bashスクリプトの場合)、次のように実行できます。bash -x script_name


実行可能ファイルを拡張しないことをお勧めします。 PythonまたはCで書き換えるには、名前を変更する必要があります。これは良い考えではありません。 (ファイルが実行可能な場合は実行可能です。独自のインタプリタの選択を担当します(参考資料を参照#!)。

関連情報