linux - source 命令没有使用 shell 脚本将变量导出到 zsh 环境

标签 linux bash shell zsh oh-my-zsh

我有一个非常简单的 shell 脚本,它在 bash 上运行得非常好,并将变量导出到当前的 bash 环境,但不幸的是它没有将变量导出到 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

. ./myscript.sh

请指教,我怎样才能让它在 zsh 环境下工作?

最佳答案

您发布的代码没有任何问题。

您的变量是在采购脚本中根本没有定义,还是已定义但未导出?

我会在采购之前打开 set -x 并分析输出。也许您的源脚本中有一些命令,其中 bash 和 zsh 的行为不同。从您发布的三行代码中,我没有看到任何不兼容性。

关于linux - source 命令没有使用 shell 脚本将变量导出到 zsh 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36117930/

相关文章:

c - 错误 : incompatible types when assigning to and returning to type

bash - Ansible:强制管道失败

android - 如何仅使用 CLI 在 Linux 上安装 Android SDK?

windows - USB linux gadget 零驱动程序与 Windows 主机通信

c# - 如何从不同的文件引用 C# 类?

php - 如何从 ash (bash) 将数据发布到 php

c - 系统 ("echo text > t.log") 报告错误

linux - 需要使用 unix 脚本移动具有文件路径的目录中的文件名

bash - 将文件中每一行的单词填充到临时数组中

php - PHP脚本不断“重启”以创建自身的新实例