.bashrc
각 Markdown 파일(bashscript 파일 )에 대한 함수를 생성하여 편집기에서 여는 쉘 스크립트가 있습니다 .
예:
ls /home/nikhil/Notes/Studies
Physics.md
Chemistry.md
Studies.md
index.md
ls /home/nikhil/Notes/Sports
Football.md
Cricket.md
index.md
보시다시피 일부 폴더(예: Studies)에는 동일한 이름(Studies.md)과 index.md를 가진 파일이 포함되어 있고, 다른 폴더(예: Sports)에는 index.md가 포함되어 있지만 Sports.md는 포함되어 있지 않습니다.
이제 내 bash 스크립트는 다음 기능을 생성합니다.
oPhysics(){ ${Editor:-vim} /home/nikhil/Notes/Studies/Physics.md }
oChemistry(){ ${Editor:-vim} /home/nikhil/Notes/Studies/Chemistry.md }
oStudies(){ ${Editor:-vim} /home/nikhil/Notes/Studies/Studies.md }
oiStudies(){ ${Editor:-vim} /home/nikhil/Notes/Studies/index.md }
oFootball(){ ${Editor:-vim} /home/nikhil/Notes/Sports/Football.md}
oCricket(){ ${Editor:-vim} /home/nikhil/Notes/Sports/Cricket.md}
oiSports(){ ${Editor:-vim} /home/nikhil/Notes/Sports/index.md}
참고: oStudies
그리고 oiStudies
존재하며, 오직 oiSports
존재합니다.
애플리케이션
oStudies
이제 사용자로서 not 대신 or oSports
(실패)를 입력하고 싶고 oiSports
함수가 존재하지 않으면 자동으로 실행되어야 합니다. 이는 대부분의 경우 사용자가 일반 Markdown 파일을 여는 데 관심이 있고 해당 파일이 존재하지 않는 경우에만 index.md만 존재하는 폴더(예: Sports 폴더)를 기억하지 못하기 때문입니다.oiSports
oSports
index.md
어떻게 해야 하나요?oiBlahBlah
내가 찾고 있는 패턴은 oBlahBlah
사용자가 호출한 함수가 존재하지 않는 경우 이를 실행하는 것입니다.oBlahBlah
제안에 답장하기
oStudies
실행 하고 싶지 않기 때문에 별칭을 만드는 것이 작동하지 않습니다oiStudies
답변1
다양한 질문에 대한 답변. 사용자가 기본 Markdown 파일을 편집하고 인덱스 파일만 편집하려는 경우(인덱스 파일이 없는 경우) 이를 수행하는 함수를 작성하는 것은 어떨까요? 그렇다면 이 oSports
기능을 사용해보세요. 함수에 공통 코드를 포함하도록 리팩터링합니다.
# Internal edit markdown function
_emd(){
if [ -e "/home/nikhil/Notes/$1/$2.md" ]
then
${Editor:-vim} "/home/nikhil/Notes/$1/$2.md"
else
${Editor:-vim} "/home/nikhil/Notes/$1/index.md"
fi
}
oPhysics(){ _emd Studies Physics ; }
oChemistry(){ _emd Studies Chemistry ; }
oStudies(){ _emd Studies Studies ; }
oiStudies(){ _emd Studies index ; }
oFootball(){ _emd Sports Football ; }
oCricket(){ _emd Sports Cricket ; }
oSports(){ _emd Sports Sports ; }
oiSports(){ _emd Sports index ; }
답변2
상황은 명확하지 않지만 간단한 해결책은 다음과 같습니다.
먼저 각 함수를 다음과 같이 정의합니다.
oStudies() { oiStudies; }
등을 사용하고 필요한 경우 스크립트가 이러한 기능을 재정의하도록 합니다.