次のような簡単なCプログラムを作成しました。
int main(int argc, char *argv[]) {
if (argc != 5) {
fputs("Not enough arguments!\n", stderr);
exit(EXIT_FAILURE);
}
そして、私は自分のPATHをetc / bash.bashrcで次のように変更しています:
PATH=.:$PATH
このプログラムをset.cとして保存し、コンパイルしています。
gcc -o set set.c
フォルダ内
~/Programming/so
しかし、電話すると
set 2 3
何も起こりません。表示されるテキストはありません。
呼び出す
./set 2 3
期待される結果を与える
以前にPATHに問題があったことはありません。
which set
を返します./set
。したがって、PATHが正しいようです。何が起こっているのですか?
test
、基本的に同じ理由でテストプログラムを呼び出すこともお勧めしません。test
シェルも内蔵されています。
test
理にかなっているようです。もちろん、あなたがそれをあなたの中に入れるときまでに、あなたPATH
は本当に別の名前を思い付くはずでした。そして、プログラムを自分の中に置くまではPATH
、./test
とにかくそれを呼び出さなければなりません。そのためtest
、1日の終わりまでに削除する予定の簡単なテストである限り、プログラムの名前を使用しても問題ありません。
foo
です。
ls
、存在するかどうかを確認するたびに実行されます(ただし、質問で行ったようにパスを変更した場合のみ)。