我正在尝试编写一个定义特定别名的实用程序脚本。
我的 SHELL 是tcsh
(无法更改)。
我尝试了以下
#!/bin/tcsh
alias log 'less ~/logs/log.`date '+%Y%m%d'`''
然后我像这样运行它:
./myscript
log
我得到的输出是:log: Command not found.
当然,如果我像这样运行它:
source myscript
log
一切安好。
有什么方法可以不指定就做到这一点source ...
吗?
答案1
不能。通过运行脚本,您将执行一个新的 shell。父进程将看不到别名。
正如所指出的,唯一的方法是使用source
,以便当前 shell 处理你的脚本文件(而不启动新进程)。