![Bash의 파일 유형 관련 별칭](https://linux55.com/image/104601/Bash%EC%9D%98%20%ED%8C%8C%EC%9D%BC%20%EC%9C%A0%ED%98%95%20%EA%B4%80%EB%A0%A8%20%EB%B3%84%EC%B9%AD.png)
파일 형식에 따라 bashrc에 gvim 별칭을 만들려고 합니다.
if [[ $file == *.tex ]]; then
alias vi="/home/rudra/bin/vims.py"
else
alias vi="gvim"
fi
를 입력하면 ~/bin/vims.py foo.tex
파일이 실행될 vi foo.tex
것으로 예상됩니다 . 그러나 작동하지 않고 모든 확장자에 대해서만 실행됩니다.gvim bar.txt
vi bar.txt
gvim foo.{tex/txt}
또한 다음 내용도 표시됩니다.
which vi
alias vi='gvim'
/usr/bin/gvim
그래서 *.tex이면 조건이 전혀 작동하지 않는다고 생각했습니다. 이유를 아시나요?
나는 다음을 사용하고 있습니다 :
bash --version
GNU bash, version 4.3.43(1)-release (x86_64-redhat-linux-gnu)
\vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jan 26 2017 07:53:42)
반품:
vi --version
bash: syntax error near unexpected token `--version'
답변1
edit
편집기를 사용하여 파일을 여는 쉘 함수입니다 . 기본값은 this gvim
이지만 파일에 .tex
접미사가 있으면 다른 편집기를 선택합니다.
function edit
{
typeset argc="$#"
typeset file="${!argc}"
typeset cmd="gvim"
case "$file" in
*.tex) cmd="/home/rudra/bin/vims.py" ;;
esac
command "$cmd" "$@"
}
이를 통해 특정 파일 이름 접미사에 대한 추가 편집기를 쉽게 추가할 수 있습니다.
이 기능은 ~/.bashrc
파일에 배치될 수 있습니다.
설명서에는 bash
다음 내용이 포함되어 있습니다.
거의 모든 목적에서 별칭은 쉘 함수로 대체됩니다.