linux - 获取 .bashrc 时出错,但首次加载时出错

标签 linux bash ubuntu-18.04

当我运行 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 时弹出错误?

我是否遗漏了一些明显的东西?

编辑:我刚刚想起了一个可能影响东西的细节: 我激活 anaconda 环境作为 .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$'%F\n%n' * | awk -vC0='\033[1;34m' -vC1='\033[00m' -vC2='\033[1;32m' -vC3='\033[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%s\n", 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'


关于linux - 获取 .bashrc 时出错,但首次加载时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58132206/

相关文章:

r - 如何在 ubuntu docker 镜像中静默安装 r-base

c++ - 就嵌入式系统的大小而言,我可以获得多小的完整编译器(如 clang 或 gcc)?

arrays - 从 NUL 分隔输入填充 bash 数组

bash - 为什么 `system` 不会创建并返回一个变量?

sudo - 无法删除 "permission denied"文件 - 即使使用 "sudo"和正确的用户/组设置

ubuntu - modprobe uio_pci_genericco 在 Ubuntu 18.04.6 上失败

linux - -fprofile-arcs 链接器选项是什么意思?

linux - 在 Travis-CI 中采购 .bashrc 不工作

linux - 配置 ARP 年龄超时

linux - Sed命令替换文件中的字符串不起作用