我在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 标准,而后者是巴什主义。