2016-03-20 14 views
0

私は本当にうまく動作し、現在のbash環境にvarialbesをエクスポートしますが、残念ながら変数をzsh環境。sourceコマンドは、シェルスクリプトを使用してzsh環境に変数をエクスポートしませんでした

#!/bin/bash 
export AWS_ACCESS_KEY_ID=$(echo $RESULT | jq --raw-output .Credentials.AccessKeyId) 
export AWS_SECRET_ACCESS_KEY=$(echo $RESULT | jq --raw-output .Credentials.SecretAccessKey) 
export AWS_SECURITY_TOKEN=$(echo $RESULT | jq --raw-output .Credentials.SessionToken) 

と私はこのように、このスクリプトを実行しています:

source myscript.sh 

OR

. ./myscript.sh 

どのように私はそれはzshの環境で動作させることができ、教えてください?

+0

シェル環境でファイルを取得すると、現在のシェルプロセスでソースファイルが実行されます。したがって、 '$ RESULT'変数はおそらく空であるかもしれません。 '$ RESULT'はどこから来たのですか? – Kadir

+0

$ RESULT変数は空ではありません、私はそれをエコーし​​ました、RESULTの値が来た場所のコマンドです:RESULT = $(aws sts assume-role --role-arn "ROLE_ARN" --role-session-name "$(date +"%s ")_ $ USER @ $(hostname)" - トークンコード$ MFA_TOKEN - シリアル番号$ AWS_MFA_ARN) –

+0

Hmm。 Zshはkshによく似ていますが、bashはbshのスーパーセットです。 bashスクリプトには、zshが実行できない互換性のないコマンドがいくつかあります。デバッグのためにzsh環境で 'setopt XTRACE VERBOSE'を使ってXTRACEとVERBOSEオプションを設定できます。 @アーバンナビ – Kadir

答えて

0

投稿したコードに間違いはありません。

変数は単純に定義されていないか、定義されていてエクスポートされていませんか?

私は、調達する前にset -xを有効にして、出力を分析します。 bashとzshの動作が異なるソーススクリプトにいくつかのコマンドがあるかもしれません。あなたが投稿した3つの行から、私は何の非互換性も見ません。

関連する問題