运行 bash 脚本在 zsh 中不起作用别名命令

运行 bash 脚本在 zsh 中不起作用别名命令

我在centos中使用zsh。我想运行一些 shell 脚本。像这样。

脚本文件

#!/bin/sh

# something ..

source ./aliases-file.sh

别名文件.sh

alias test=ls
alias test2=cat

我运行./script.sh,别名尚未应用于当前会话。我该怎么做这个?

答案1

当您运行时,script.sh它会在子 shell 中执行,并且您的别名不会传播到调用 shell(或您所指的当前会话)。您需要获取 script.sh 本身:source script.sh。这将导致命令在当前 shell 中运行,并且别名将变得可见。

旁注:出于可移植性的原因,您应该考虑使用.而不是source因为前者是 POSIX 标准,而后者是巴什主义

相关内容