私はおそらく1990年代半ば(!)にこの構造を見つけました。
export var=value
Bashismで、ポータブル表現は次のとおりです。
var=value
export var
私は長年これを擁護してきましたが、最近誰かが私に挑戦し、文字通りかつて私の強い信仰を裏付ける文書を見つけることができませんでした。
Google検索"export: command not found"
誰かが実際にこの問題を経験した事例はないようですので、それが実際といってもあまり一般的ではないと思います。
(私が受け取ったクリックは、初心者が句読点をコピー/貼り付けたために発生したようです。'export: command not found
または、類似またはBourneシェル構文を使用したい初心者ユーザーとexport
一緒に使用しようとしています。 )sudo
csh
OS Xsh
とdash
。
sh$ export var=value
sh$ echo "$var"
value
sh$ sh -c 'echo "$var"' # see that it really is exported
value
今日の世界でexport var=value
使っても安全だと言えますか?
結果が何であるかを理解したいと思います。 v7 "Bourne classic"に移植されていない場合、それはただの不思議なことに過ぎません。これは、本番システムでシェルが実際にこの構文を処理できないことを確認するのに役立ちます。
ベストアンサー1
bashismではなく、POSIX互換の構文です。これは実際にずっと前にkshismで始まり、その後Bourne構文に基づいてほぼすべてのシェルで採用されました。唯一の悪名高い例外は、/bin/sh
以前のBourneシェル構文に固執するSolaris 10以前のバージョンです。 Solaris 11はPOSIX互換シェルを/bin/sh
。
ちなみに、export
Bourneシェルの以前のバージョンにはすでに組み込みコマンドがあるので、インターネット検索は誤解を招く可能性がexport: command not found
あります。
export
以下は、割り当てとともに使用した場合のレガシーBourneシェルの動作です。
$ export var=22
var=22: is not an identifier
香水を呼び起こす人のために、オリジナルBourneシェルのソースコードほとんどのUnixとLinuxのディストリビューションで利用可能でコンパイルされています。