如何执行封装在另一个源文件中的别名?

如何执行封装在另一个源文件中的别名?

例如

~/.cshrc

alias job_start 'cd $PROJ_DIR && source .env/bin/activate.csh && rehash && job_run'

$PROJ_DIR/.env/bin/activate.csh

alias job_run '(cd $PROJ_DIR/builds; sh run.sh)'

调用 job_start 后:

% job_start                                                                                                                                                                                                  [4/36]
job_run: Command not found.

但别名会在调用job_start->job_run出现后更新。

手动调用job_run将按预期进行。

答案1

让您的别名获取脚本,而不是尝试让它直接执行:

alias job_start 'cd $PROJ_DIR && source ~/bin/job_start'

看起来~/bin/job_start像这样:

source .env/bin/activate.csh
rehash
job_run

或者,如果不需要保留对环境的更改,您可以只使用别名execute ~/bin/job_start

另外,如果~/bin在您的路径中,将~/bin/job_start脚本重命名为其他名称可能是合适的:-)

相关内容