0
Cでテストスクリプトを作成し、コンパイルして/ usr/binディレクトリに置いて、mkdir
またはls
のような場所から実行します。しかし、私は$ test
何も起こらないと書きました。もし私が$ /usr/bin/test
と書いたらうまくいきます。私が間違ったことは?私はUbuntu 14を手に入れました。Cスクリプトがグローバルに動作しない
Cでテストスクリプトを作成し、コンパイルして/ usr/binディレクトリに置いて、mkdir
またはls
のような場所から実行します。しかし、私は$ test
何も起こらないと書きました。もし私が$ /usr/bin/test
と書いたらうまくいきます。私が間違ったことは?私はUbuntu 14を手に入れました。Cスクリプトがグローバルに動作しない
シェル(bashなど)にはシェルが組み込まれています。という名前のtest
があります。したがって、test
を実行すると、test
が/usr/bin/
であるにもかかわらず、にシェルが組み込まれており、test
が実行されます。あなたが完全なパスを与えるとき、そこにはあいまいさはありません(PATHや組み込み関数の中にある他のバイナリtest
のように)。
あなたは実行することでこれをテストすることができます。
$type test
システムバイナリやシェル組み込みコマンドと干渉しない何か他のものにあなたのバイナリに名前を付けます。バイナリが一意に指定されていても、バイナリをusr/local/bin/
などの指定された場所に配置することをお勧めします。
これはシェルの標準コマンドであるため、あなたのプログラムに 'test'という名前を付けてはいけません。例えば、 [この 'test'マニュアルページ](http://man7.org/linux/man-pages/man1/test.1.html)。 '/ usr/bin'にコピーすることで、既存の' test'コマンドを上書きすることができます。 ***決して***あなたのプログラムを盲目的にシステムディレクトリにコピーしないでください! –
コードは掲載されていませんが、これはトピックに関して遠隔地でさえありません。 "私のLinuxコマンドは動作しません"質問はhttp://unix.stackexchange.com/にあります[ask]をお読みください。 – Mawg