bash
bashの場合は変数展開で簡単に置き換えられる。
function extention () {
echo ${1%.*}.after
}
fish
fishの場合、変数展開が使えないのでどうしようかと考えた結果、string replaceで文字列を置換することにした。
function extention
echo (string replace -ra '(.*)\\.(.*)' '$1.after' $argv[1])
end
でもfishで関数はやめたほうがいいかも
fishでスクリプトを描こうとすると以下の点が引っかかる。
・ググって出てきた便利なシェルスクリプトはだいたいbashで、fishへの書き換えに文法を調べる時間がかかる
・自作のfishスクリプトを他人に展開しようとすると、まず相手はfishを使っていないのでbashへの書き換えが必要になる
・プロジェクトで使うようなスクリプトはまずbashだと思われるので、普段からfishで書いているとbashに不慣れになる
関数はやめて実行ファイルにして、一つのディレクトリにまとめてからパスを通す方向にしよう。