我有一个包含别名的cshrc文件,在该文件中我想设置一个指向bash文件中定义的函数的别名。
bash函数文件AliasFunc:
function aaa()
{
echo stackoverflow
}
示例.cshrc文件:
bash -c 'source AliasFunc'
alias bashfunc aaa
bashfunc #calling bashfunc
获取.cshrc文件会导致以下错误:
bashfunc: Command not found.
答案 0 :(得分:2)
cshrc文件中的bash -c 'source AliasFunc'
是启动新的bash shell,加载AliasFunc
文件,然后退出。它根本不会影响父csh shell。
bash和csh都有一个source
关键字,但这并不意味着它以某种方式“兼容”。你现在要做的就是尝试通过在Perl程序中启动一个新的Python进程来在Perl中导入Python模块。
你可以做的是:
$ alias bashfunc 'bash -c "source AliasFunc && aaa"'
$ bashfunc
stackoverflow
每次调用bashfunc
别名时,它都会启动一个新的bash shell,它将获取AliasFunc
文件,将立即运行bash aaa
函数