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の環境で動作させることができ、教えてください?
シェル環境でファイルを取得すると、現在のシェルプロセスでソースファイルが実行されます。したがって、 '$ RESULT'変数はおそらく空であるかもしれません。 '$ RESULT'はどこから来たのですか? – Kadir
$ RESULT変数は空ではありません、私はそれをエコーしました、RESULTの値が来た場所のコマンドです:RESULT = $(aws sts assume-role --role-arn "ROLE_ARN" --role-session-name "$(date +"%s ")_ $ USER @ $(hostname)" - トークンコード$ MFA_TOKEN - シリアル番号$ AWS_MFA_ARN) –
Hmm。 Zshはkshによく似ていますが、bashはbshのスーパーセットです。 bashスクリプトには、zshが実行できない互換性のないコマンドがいくつかあります。デバッグのためにzsh環境で 'setopt XTRACE VERBOSE'を使ってXTRACEとVERBOSEオプションを設定できます。 @アーバンナビ – Kadir