将别名命令从tcsh转换为bash

时间:2019-06-17 17:01:23

标签: bash csh tcsh

我是bash的新手。 我想将以下别名命令格式tcsh转换为bash:

alias buzz 'echo \!$;if (-e ~/.sshelp.txt) grep -i \!$ ~/.sshelp.txt && echo \!$;if (-e ~/.sshelp_qct.txt) grep -i \!$ ~/.sshelp_qct.txt '

我尝试使用以下命令,但不起作用。有什么建议吗?

alias buzz= 'echo \!$;if (-e ~/.sshelp.txt) grep -i \!$ ~/.sshelp.txt && echo \!$;if (-e ~/.sshelp_qct.txt) grep -i \!$ ~/.sshelp_qct.txt '

1 个答案:

答案 0 :(得分:1)

bash中定义一个函数。 C Shell定义别名是因为它们不支持函数。我认为以下内容(大致)是等效的。

buzz () {
    echo "$1"
    if [ -e ~/.sshelp.txt ]; then
        grep -i "$1" ~/.sshelp.txt && echo "$1"
    fi
    echo "$1"
    if [ -e ~/.sshelp_qct.txt ]; then
        grep -i "$1" ~/.sshelp_qct.txt
    fi
}