./はシェルで何を意味しますか?

./はシェルで何を意味しますか?

hello_world.c単純なファイルがあります。ここ。私はそれを行う方法を見つけました。

gcc -Wall -g hello_world.c -o hello 動作していますが、実行するとbash helloエラーが発生します。hello: hello: cannot execute binary file

sh helloその後、エラー:hello: 1: Syntax error: "(" unexpected
./hello予想される行が印刷されました。

3人は全く同じだと思いましたが、結果からではありません。なぜ他の2つは動作しないのですか?これに加えて、./helloこのファイルを呼び出す他の方法はありますかhello

ベストアンサー1

最初の2回の試みbash helloでは、ファイルがシェル実行可能ファイルであることをこれらのシェル(およびsh helloそれぞれ)に確実にしようとします。バイナリファイルなので、シェルはファイルを実行するように指示され、何をすべきかわからないため、これらのエラーメッセージが表示されます。 3番目の例では、シェルが実行を期待するようにバイナリをバイナリとして実行します。これは、単に現在のディレクトリ()でバイナリを見つけることができる場所を示す表示にすぎません。なぜ必要ですか?ほとんどの場合、「現在の作業ディレクトリ」は変数の一部ではないため、単に実行しても実行可能ファイルをどこにも見つけることはできません。bashshhellohello./../$PATHhello

おすすめ記事