POSIXシェル:arg0の `exec`が変更されました。

POSIXシェル:arg0の `exec`が変更されました。

exec私はプログラムを持ってarg0と環境を含む引数を制御したいと思います。 CIを使用すると可能ですexecve。 POSIXシェルでこれを行うことはできますか?

ベストアンサー1

POSIX文書によると特別な組み込みユーティリティ、execの構文は次のとおりです。

exec [command [argument...]]

シェルが呼び出される環境しなければならないに広がる注文するしたがって、実行前に設定することをおfoo=bar exec cmd勧めします。しかし、考慮することもできます。基本的な節。

ほとんどの歴史的実装は一貫性がありません。 foo = bar exec cmdはfooをcmdに渡しません。

argv[0] を修正する組み込みの方法もありません。
考えられる解決策にはシンボリックリンクが含まれる。いくつかの名前到着注文する以前exec some_name(全体のクレジットは次のとおりです。ムル)

気づく強く打つ 扱いにくいそしてケシexec コマンドの拡張実装をサポートします。

exec [-cl] [-a name] [command [arguments]]

-aオプションのため名前擁護するargv[0]

-a argv0を使用すると、実行コマンドのargv [0]文字列を設定します。

しかし、両方掘削...でもないスプリント...でもないこれをサポートしてください。

おすすめ記事