2016-07-11 11 views
1

私はcプログラムを書いています。私はプログラムをパイプしたいと思っていて、それを意味のあるものにしたいと思っています。だから毎回./a.outと書くのではなく、changetextという名前を付けたいと思います。それを達成するために、私は以下のようにプログラムをコンパイルしました:gcc -o changetext myprog.c。私の知る限りでは、これは代わりに./a.outchangetextの使用を置き換える必要があります。しかし、私はcommand not foundを得ています。私はcとunix環境に新しいです。任意の提案が高く評価されました。./a.outコマンドを使用せずにプログラムを実行するにはどうすればよいですか?

+5

代わりに '。/ changetext'を試してください。 –

+0

それは動作します!多くのありがとう! –

+0

'。/'と書かない場合は、 '$ PATH'にあるディレクトリに入れます。 – Barmar

答えて

2

私がコメントで言ったように:コマンドがすでに存在して​​を想定し、次のようになり、これを達成するために使用します。 、あなたは

./changetext 

それとも、PATH環境変数で参照されているディレクトリに中に入れ、それを実行するために実行の前にドットスラッシュ(./)を置くことができます。この安全機能の素敵な説明は(おかげでrubenvbに)ここで見つけることができます:

http://www.linfo.org/dot_slash.html

これは、同じ名前を持つユーザーが記述したコマンドから組み込みコマンドを区別するために、多かれ少なかれであることを述べています。私は確信していない。シェルは、ユーザーが提供する名前に組み込みの名前を単純に使用するだけで、現在のディレクトリだけでなくPATHも調べることができます。

しかしこれは* nix方法です。

1

コマンドchanhetextだけでchangetextなどのプログラムをコンパイルして実行するには、PATH環境変数にリストされているディレクトリにバイナリを置く必要があります。​​ディレクトリに自分で作成したプログラムを置くことをお勧めします。ログアウトして再度、その後、

gcc -o ~/bin/changetext myprog.c
それが存在しない場合、あなたは、単にそれを作成することができます

+1

ログアウトする必要はありません。 '$ PATH'を更新するだけです)。 –

関連する問題