在 tcsh 中为 bash 脚本中定义的函数设置别名
Setting up an Alias in tcsh for a function defined in a bash script
我有一个带有别名的 cshrc 文件,我想在该文件中设置一个指向 bash 文件中定义的函数的别名。
bash 函数文件 AliasFunc:
function aaa()
{
echo Whosebug
}
示例 .cshrc 文件:
bash -c 'source AliasFunc'
alias bashfunc aaa
bashfunc #calling bashfunc
采购 .cshrc 文件导致以下错误:
bashfunc: Command not found.
你的 cshrc 文件中的 bash -c 'source AliasFunc'
所做的是启动一个新的 bash shell,加载 AliasFunc
文件,然后退出。它根本不会影响父 csh shell。
碰巧 bash 和 csh 都有一个 source
关键字,但这并不意味着它在某种程度上是 "compatible"。您现在要做的相当于尝试通过在 Perl 程序中启动一个新的 Python 进程来在 Perl 中导入一个 Python 模块。
你可以做的是:
$ alias bashfunc 'bash -c "source AliasFunc && aaa"'
$ bashfunc
Whosebug
每次调用 bashfunc
别名时,它将启动一个新的 bash shell,它将作为 AliasFunc
文件的来源 和 将立即 运行 bash aaa
函数。
我有一个带有别名的 cshrc 文件,我想在该文件中设置一个指向 bash 文件中定义的函数的别名。
bash 函数文件 AliasFunc:
function aaa()
{
echo Whosebug
}
示例 .cshrc 文件:
bash -c 'source AliasFunc'
alias bashfunc aaa
bashfunc #calling bashfunc
采购 .cshrc 文件导致以下错误:
bashfunc: Command not found.
你的 cshrc 文件中的 bash -c 'source AliasFunc'
所做的是启动一个新的 bash shell,加载 AliasFunc
文件,然后退出。它根本不会影响父 csh shell。
碰巧 bash 和 csh 都有一个 source
关键字,但这并不意味着它在某种程度上是 "compatible"。您现在要做的相当于尝试通过在 Perl 程序中启动一个新的 Python 进程来在 Perl 中导入一个 Python 模块。
你可以做的是:
$ alias bashfunc 'bash -c "source AliasFunc && aaa"'
$ bashfunc
Whosebug
每次调用 bashfunc
别名时,它将启动一个新的 bash shell,它将作为 AliasFunc
文件的来源 和 将立即 运行 bash aaa
函数。