将别名命令从tcsh转换为bash
我对bash还不熟悉。 我想将下面的alias命令格式tcsh转换为bash:将别名命令从tcsh转换为bash,bash,csh,tcsh,Bash,Csh,Tcsh,我对bash还不熟悉。 我想将下面的alias命令格式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.
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 '
在
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
}
为什么不在
.bashrc
中使用函数
。至少读起来会更简单,也不会保证太多的引号转义。删除=@JonathonK后面的空格有些不相关,因为正文的大部分内容无论如何都是无效的bash
。感谢我尝试了上面的代码,但它给出了一个错误:意外标记附近的语法错误`{我把上面的代码放在~/.alias文件中,然后把.alias文件放在.bashrupdate中,如果我把上面的代码直接放在.bashrc中,它就可以工作了。但是如果我把它放在~/.alias文件中,然后把它放在~/.bashrc中,它就会崩溃。