Cygwinで遊ぶとか言ってましたが, あんまり遊んでません.
それどころか, 昨日はなぜかシェルスクリプトを書いて遊んでいました. むむ.
内容は, texのタイプセット時に出てくるやつらの消去(.tex 及び .pdf以外を)です.
初めてシェルスクリプト書いたし, エラー処理とかしきれていないかもしれない. 使用は自己責任でお願いします.(使う人居ないと思うけれど)
私の環境では, タイプセットのコマンドによっては .syntax.gz ファイルが出てくることもあるので, これもあれば消去するように書いてます.
使い方は, このスクリプトに filename.tex (または, filename.pdf)を引数として渡すと, filename.aux, filename.log, filename.dvi, filename.syntax.gz があれば削除するかどうか聞かれ, なければ何もしないという単純な仕様. 特に .log はtex以外でも登場するのでむやみに消さないように -i オプションをつけています.
#!/bin/sh # 引数が 0, もしくは2以上ならばエラーメッセージを取得 if [ $# = 1 ] then ## 絶対パスを取得する path=$1 dir=$(cd $(dirname $path) && pwd) file=$(/usr/bin/basename $path) abs_path=$dir/$file ## ファイル名を取得 FILENAME_AND_EXT=$dir/${abs_path##*/} #絶対パスと名前と拡張子 FILENAME=${FILENAME_AND_EXT%.*} #絶対パスと名前のみ FILE_EXT=$dir/${FILENAME_AND_EXT##*.} #絶対パスと拡張子のみ if [ $FILE_EXT = $dir"/tex" -o $FILE_EXT = $dir"/pdf" ] # 引数が .tex or .pdf のとき then if [ -e ${FILENAME}.aux ] # .auxファイルがあれば then rm -i ${FILENAME}.aux fi if [ -e ${FILENAME}.log ] then rm -i ${FILENAME}.log fi if [ -e ${FILENAME}.dvi ] then rm -i ${FILENAME}.dvi fi if [ -e ${FILENAME}.synctex.gz ] then rm -i ${FILENAME}.synctex.gz fi else echo "このスクリプトは, 拡張子が .tex or .pdf のファイルをひとつ指定しないと正しく動きません" "引数が .tex,.pdf以外を指定しているとき fi else echo "このスクリプトは, 拡張子が .tex or .pdf のファイルをひとつ指定しないと正しく動きません" # 引数が1つじゃないとき fi
以下のサイト, ブログを参照(ていうかパクったところもある) しました.
エラーメッセージは趣味です. echo より say させたほうが楽しいかもしれない.
一応絶対パス, 相対パスでの動作は確認済み. カレントディレクトリ以外のファイルを引数にしても動作します.(僕が数回試した限りでは)
たまに遊んだらコードをここに貼っつけるの, 割りと楽しいのかもしれない.