Linux端末では、「bash foo.sh」と「./foo.sh」の間に違いはありますか?

Linux端末では、「bash foo.sh」と「./foo.sh」の間に違いはありますか?

Linux端末でbashスクリプトを実行するときに「bash foo.sh」と「」./foo.shの間に違いはありますか?それとも同じ機能を実行する2つの異なる方法ですか?

ベストアンサー1

次の条件が満たされている場合は同じことがあります。./foo.sh

  1. 実行可能であり、
  2. #!/bin/bash(またはそれに対応する)で始まる

そうしないと、説明する前提条件(foo.shbashスクリプト)によっては、./foo.shバージョンにユーザーの実行権限がないか、デフォルトのスクリプトインタプリタではなくスクリプト/bin/shによって解釈されるため、バージョンが失敗する可能性があります。/bin/bash/bin/sh

おすすめ記事