アプリケーション

アプリケーション

.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これで、ユーザーとしてnotoSportsの代わりにor(失敗)を入力したいので、関数が存在しない場合はoiSports自動的に実行する必要があります。これは、ほとんどの場合、ユーザーが通常のMarkdownファイルを開くことに興味があり、そのファイルが存在しない場合にのみindex.mdのみが存在するフォルダ(Sportsフォルダなど)を覚えていないためです。oiSportsoSportsindex.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; }

などを使用し、必要に応じてスクリプトがこれらの機能をオーバーライドするようにします。

関連情報