Gedit で外部ツールからスクリプト実行を筆者はよく使う。
今まで ContentType で振り分けしていた。
しかしコレでは gjs, jjs や Python, Python3 で振り分けできない。
考えてみたらシバンで実行すればいいじゃん。
+x パーミッションを付けない状態でもシバンを読取りすればいいのだし。
先頭に #! があればソレで、無いなら今までどおりにすればいいかな。
#!/bin/sh # シバンがあるならソレで起動、無いなら ContentType 判別 h=`head -n1 $GEDIT_CURRENT_DOCUMENT_PATH` if [[ $h = \#\!* ]]; then app=${h#*\!} echo $app $GEDIT_CURRENT_DOCUMENT_PATH $app $GEDIT_CURRENT_DOCUMENT_PATH else echo @ContentType $GEDIT_CURRENT_DOCUMENT_TYPE if [[ $GEDIT_CURRENT_DOCUMENT_TYPE = *python ]]; then python3 $GEDIT_CURRENT_DOCUMENT_PATH elif [[ $GEDIT_CURRENT_DOCUMENT_TYPE = *javascript ]]; then gjs $GEDIT_CURRENT_DOCUMENT_PATH elif [[ $GEDIT_CURRENT_DOCUMENT_TYPE = *shellscript ]]; then sh $GEDIT_CURRENT_DOCUMENT_PATH elif [[ $GEDIT_CURRENT_DOCUMENT_TYPE = *vala ]]; then vala $GEDIT_CURRENT_DOCUMENT_PATH elif [[ $GEDIT_CURRENT_DOCUMENT_TYPE = *csrc ]]; then src=`head $GEDIT_CURRENT_DOCUMENT_PATH` case $src in *gtk.h*) echo "Gtk Build" gcc $GEDIT_CURRENT_DOCUMENT_PATH `pkg-config --cflags --libs gtk+-3.0` ;; *glib.h*) echo "GLib Build" gcc $GEDIT_CURRENT_DOCUMENT_PATH `pkg-config --cflags --libs glib-2.0` ;; *) echo "Gcc Build" gcc $GEDIT_CURRENT_DOCUMENT_PATH ;; esac else echo Non Support File fi fi
これでもし他のスクリプト言語に目覚めてもシバンだけで対応できるぞ!
無いと思うけど。