我可以将别名“导出”到调用脚本的 SHELL 吗?

Ron*_*onK 20 alias shell-script tcsh

我正在尝试编写一个定义某些别名的实用程序脚本。
我的 SHELL 是tcsh(不能改变)。

我尝试了以下

#!/bin/tcsh  
alias log 'less ~/logs/log.`date '+%Y%m%d'`''
Run Code Online (Sandbox Code Playgroud)

然后我像这样运行它:

./myscript  
log
Run Code Online (Sandbox Code Playgroud)

我得到的输出是: log: Command not found.

当然,如果我像这样运行它:

source myscript  
log
Run Code Online (Sandbox Code Playgroud)

一切安好。

有什么方法可以不指定source ...吗?

Mat*_*teo 25

你不能。通过运行您的脚本,您可以执行一个新的 shell。父进程不会看到别名。

所指出的唯一方法是使用,source以便当前 shell 处理您的脚本文件(无需启动新进程)。

  • 谢谢 - 这就是我的想法 - 我将向我的 .alias 添加一个别名,该别名将用于`source myscript` - 我想要一些可以由所有团队成员共享的简单东西 - 一个别名就可以做到。 (2认同)