私は単純なシェルプログラムを書いています。 Mac osxとubuntuのシェルで/usr/bin/whichを使うとうまくいきます。 Red Hat Enterprise Linuxクライアントバージョン6.3(San Diego)で同じコマンドを使用すると、「which:no ANYCOMMANDHERE in((null))」エラーが発生します。
これの後ろにどんな直感がありますか?エラーが何を意味するのかさえ見つかりません(私のソースを表示すると役に立つかどうか教えてください)。
編集:私のパスは(シェル内で)次のようになります。
$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin
ありがとう、ジョン
ベストアンサー1
文字列は、その引数がNULLポインタの場合、printfの(文字列)変換指定子(null)
への引数として一部のCライブラリに置き換えられます。%s
char *path = 0; /* This would normally be = getenv("PATH"). */
printf ("which: no foobar in (%s)\n", path);
PATH環境変数が設定されていないかエクスポートされていないようです。この場合はgetenv("PATH")
0を返します。最後の可能性は、which
ユーティリティに深刻なバグがある可能性があることです。
うまく動作すると言ったらexport PATH
?