できるだけこのシナリオを簡略化しました。私は適切なエスケープされた引用符で動作するように2番目のバージョンを取得しようとしています。最初は期待どおりに動作します。残念ながら、私は秒を呼び出す方法を変更することはできません。しかし私はREALTESTの価値を変えることができます。クォートで何を試しても、2番目の文字列にスペース文字列を受け入れることができません。カプセル化された変数を新しい環境に渡す方法
これは私が何をしようとしていますものです:ここでは
#!/bin/bash -x
env -i TESTVAR="some spaced string" /bin/bash -l -c "echo \$TESTVAR"
REALTEST=TESTVAR="some spaced string"
env -i $REALTEST /bin/bash -l -c "echo \$TESTVAR"
は私の出力です:
-bash-4.2$ ./test.sh
+ env -i 'TESTVAR=some spaced string' /bin/bash -l -c 'echo $TESTVAR'
some spaced string
+ REALTEST='TESTVAR=some spaced string'
+ env -i TESTVAR=some spaced string /bin/bash -l -c 'echo $TESTVAR'
env: spaced: No such file or directory
私はこの問題を解決するために取ることができるどのようなアプローチに任意の考えやこれはただのフラットアウトではありません可能?
私は単純に質問を簡略化しました。私はここに新しいものを投稿しました:http://stackoverflow.com/questions/42557008/encapsulating-strings-of-variables-in-bash – DrMilk