Ошибка при поиске .bashrc, но не при первой загрузке - PullRequest
0 голосов
/ 27 сентября 2019

Я получаю ошибку из моего .bash_aliases файла при запуске source .bashrc. Однако , когда я запускаю терминал (я использую терминатор), ошибка не отображается, и оба .bashrc и .bash_aliases правильно получены.

Ошибка, которую я получаюis:

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

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# ALIASES
alias ll='ls -1A'
alias la='ls -A'

#=====================================================================================

printPretty() 
{ 
    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]}'
}

alias l='printPretty 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;
}

alias html='html 2>/dev/null'

#=====================================================================================

alias src="clear && source ~/.bashrc"

Пожалуйста, не комментируйте ненужную функцию printPretty():)

Что может вызвать появление ошибки только при запуске src?

Я упускаю что-то явно очевидное?

РЕДАКТИРОВАТЬ: Я только что вспомнил деталь, которая может повлиять на материал: я активирую среду анаконды в качестве последней строки.bashrc.Я не знаю, может ли это вызвать проблемы или нет, но я подумал, что упомяну это.

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Вот, чтобы возобновить то, что ответ от tDarkCrystal принес:

Итак, ответ прост ... Я назвал функцию с тем же именем, что и псевдоним, так что она запуталась ...

Я изменил html () на htmlFunc () и теперь он работает.

Спасибо tDarkCrystal

1 голос
/ 27 сентября 2019

Вам нужен пробел в объявлении функции.Вот почему синтаксическая ошибка сообщает об этой строке.

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'


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...