采购 .bashrc 时出错,但首次加载时则不然



当我运行source .bashrc时,我的.bash_aliases文件收到错误。但是,当我启动终端(我使用终结器(时,错误没有显示,.bashrc.bash_aliases都正确来源。

我得到的错误是:

bash: /home/ciaran/.bash_aliases: line 33: syntax error near unexpected token `('
bash: /home/ciaran/.bash_aliases: line 33: `html ()'

这是指我为pandoc将 .md 转换为 .html 而设置的自定义别名。

据我所知,函数中没有错误,但无论如何这是代码:

#!/bin/sh
#[...] Regular aliases for ls and stuff
#[...] Other Stuff that is irrelevant
html ()
{
pandoc -f markdown -t html $1 > /home/ciaran/Desktop/r.html
wait
firefox /home/ciaran/Desktop/r.html;
wait
sleep 5
rm /home/ciaran/Desktop/r.html;
}
alias html='html 2>/dev/null'
#=====================================================================================
alias src="clear && source ~/.bashrc"

什么可能导致仅在我运行时弹出错误src

我错过了一些显而易见的东西吗?

编辑:我刚刚想起了一个可能影响东西的细节: 我激活蟒蛇环境作为.bashrc的最后一行。我不知道这是否会导致问题,但我想我会提到它。

函数声明中需要一个空格。 这就是语法错误在该行上报告的原因。

html () {
pandoc -f markdown -t html $1 > /home/ciaran/Desktop/r.html
wait
firefox /home/ciaran/Desktop/r.html;
wait
sleep 5
rm /home/ciaran/Desktop/r.html;
}

请参阅此内容以进行清理。


print_pretty () 
{ 
stat -c$'%Fn%n' * | awk -vC0='33[1;34m' -vC1='33[00m' -vC2='33[1;32m' -vC3='33[1;36m' '/^directory/ {getline LEFT[++DC]; next} {getline RIGHT[++FC]} {for (i=1; i<=FC; i++) {if (system("[ -h " RIGHT[i] " ]") == 0) RIGHT[i]=C3 RIGHT[i]; if (system("[ -x " RIGHT[i] " ]") == 0) RIGHT[i]=C2 RIGHT[i]}} END {for (i=1; i<=(DC>FC?DC:FC); i++) printf "%-50s%sn", C0 LEFT[i], C1 RIGHT[i]}'
}
# execute function first
print_pretty
# now make alias
alias l='print_pretty 2>/dev/null' #<-- sneaky ignore errors command here!
#=====================================================================================
html ()
{
pandoc -f markdown -t html $1 > /home/ciaran/Desktop/r.html
wait
firefox /home/ciaran/Desktop/r.html;
wait
sleep 5
rm /home/ciaran/Desktop/r.html;
}
# call function
html
#=====================================================================================
alias src='clear && source ~/.bashrc'

以下是tDarkCrystal带来的答案:

所以答案很简单...我称该函数与别名同名,因此它混淆了自己......

html ()更改为htmlFunc (),现在它可以工作了。

感谢tDarkCrystal

最新更新