shell - ZSH 设置为使用别名,但现在我运行的脚本不支持它们

标签 shell zsh

在本地运行 zsh 并安装 oh-my-zsh。

~/.z配置文件:

# Added by Toolbox App
export PATH="$PATH:/Users/boxcee/Library/Application Support/JetBrains/Toolbox/scripts"

# Github
export GITHUB_TOKEN=xxx

# Homebrew
eval "$(/opt/homebrew/bin/brew shellenv)"

~/.zshrc:

# Podman
alias docker=podman
alias docker-compose=podman-compose

# Python
alias python=python3
alias pip=pip3

现在我尝试运行以下脚本:

#!/usr/bin/env zsh

docker version

并收到此错误:

./test.sh:3: command not found: docker

我不明白为什么我会得到它。 在我的 ZSH 中单独运行该命令效果很好。

最佳答案

如果您将脚本作为可执行文件运行,它将在子 shell 中运行。由于别名不会导出到环境中,因此子 shell 无法导入它们。如果您希望保留别名,那么您应该source您的脚本,这会导致它在您调用它的同一个 shell 中运行。

关于shell - ZSH 设置为使用别名,但现在我运行的脚本不支持它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73023321/

相关文章:

linux - 修剪文本表并将值存储为变量

Zsh 无法识别函数内的别名

bash - env 不工作但 echo 显示变量

c - 从 txt 文件中读取数据并在终端中获得被拒绝的权限

kubernetes - 如何在 zsh 上禁用 kubectl 自动补全

linux - 环境变量 PWD 是否总是在 Linux 中定义?

linux - 用于检查进程是否已在运行并在是时退出的 Shell 脚本

linux - Shell多日志监控与关联

linux - bash shell - 递增(关联)数组值

flutter - zsh:找不到命令: flutter