2012-08-23 13 views
5

GNU並列で環境変数を継承したいと思います。私はいくつかの 'スクリプト'(実際にはGNU並列で使用するように設計されたコマンドのリスト)を数百行ずつ持っていて、それぞれ異なる外部プログラムを呼びます。しかし、これらの外部プログラム(私のコントロール外)は、実行する前にいくつかの環境変数を設定する必要があります。GNU並列で環境変数を継承する

ローカルに設定/エクスポートすることは役に立たないようですが、この情報をプロファイルに追加する方法はありません。

ドキュメントにはこれがないようですが、同様のSOページでは、スクリプトでコマンドをラップすることを推奨しています。しかし、これは控えめな解決策のようです。現在の環境をエクスポートする方法や、スクリプトに必要な変数を指定する方法はありますか?

ありがとうございます!これは、私の作品

答えて

6

FOO="My brother's 12\" records" 
export FOO 
parallel echo 'FOO is "$FOO" Process id $$ Argument' ::: 1 2 3 

それは(SSH経由)リモート接続のために働くようにするには、あなたは、シェル拡張のための変数を引用する必要があります。それはあなたの問題を解決しない場合は、動作しない例を示すご検討ください

parallel -S server export FOO=$(parallel --shellquote ::: "$FOO")\;echo 'FOO is "$FOO" Process id $$ Argument' ::: 1 2 3 

parallel --shellquoteはそれをあなたが行うことができます。

- 編集 - バージョン20121022

で導入--env

ルック - 編集 - 20160322.

で導入 env_parallel

ルック