在tcsh中为bash脚本中定义的函数设置别名

时间:2016-11-10 17:18:43

标签: bash function shell alias tcsh

我有一个包含别名的cshrc文件,在该文件中我想设置一个指向bash文件中定义的函数的别名。

bash函数文件AliasFunc:

function aaa() 
{

 echo stackoverflow

}

示例.cshrc文件:

bash -c 'source AliasFunc'

alias bashfunc aaa

bashfunc #calling bashfunc

获取.cshrc文件会导致以下错误:

bashfunc: Command not found.

1 个答案:

答案 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函数