bash」タグアーカイブ

shell

シェル・スクリプトの基本

こんなページをチマチマ作っているけど自分で勉強になるわ。
本や既存サイトから情報を集めて元 Windows ソフト作者っぽく書き換えているので。
C-c とかいう書き方はどうしても馴染めない、てか今の Linux でソレはないと思うし。

標準エラー出力のリダイレクトは 2> と書くなんて今日まで知らなかった。
C シェルは書き方が違うが Ubuntu 使いなら B シェルだけでいいだろう。

それと気がついたんだけど ImageMagic が入っていた、9.10 には無かったのを確認。
最初からなのか何かのパッケージにくっついていたのかは解らないけど。

display
convert
identify
import
xv
netpbm

のコマンドも使える、結構おもしろい。

$ convert -sample 160x90 input.jpg output.jpg
$ identify input.jpg

しかし SyntaxHighlighter 3.0.83 が出ていたので変更しようと思ったのだが…

Opera のフォントは相変わらずだな…
というか Opera も Chrome もアルファベットの下が欠けてしまう!
駄目だこりゃ、v2 のまま当面は様子見するか。

いや、アクセス状況を見ると Blog よりまとめページに力を入れたほうが良さそうなので。
Blog は終わったとかよく見かけるけど今まで日本人は使い方を間違えていたのが正されてきただけ。
とにかく結果として情報のまとめページのほうが検索上位に、つーことだろう。

しかし IronPython のまとめは全然アクセスが無い、まったく無い。
どうがんばっても Windows でスクリプトは受け入れられそうにないな、と感じる。

シェルスクリプトの初心者本

今月の日経 Linx を買った、付録の「シェルスクリプトの基本 10 項目」目当てです。

実はシェルスクリプトを今ひとつ使いこなせない現在の私である。
Python もいいけどシェルスクリプトくらい普通に書けないとエラそうにできないし。

パッと付録を読んだけどコレはいい。
分厚くてウンザリする bash の解説本とは違い基本の基本だけを解りやすく書いている。
Web だけじゃ解りにくい解説しか無いから買っておいたほうがいいよ。

このたった 34 ページの付録だけで 1490 円の価値はある。
久々に良い本を見つけたが Amazon に無かったのでアフィリにならん。
クソォ適当にまとめと追記をして覚書ページを作ってやるぞこのやろう。

でもせっかくの有用な付録なのに本の記事はフリーソフトの紹介ってのがどうなんだ?
bash のコマンドって実は CUI アプリだよと初心者に教えたほうが理解が早いのに。

それも紹介しているアプリがチト、w3m って Ubuntu には標準で…
リポジトリに Apache や PHP があるのに XAMPP とか Wine で秀丸を動かすとか…
だから FTP なんて Nautilus でも Dolphin でも簡単に可能なのに…

何より Opera が無いってどういうことだ!
KeepassX も無い、GHex も無い、つーかテキストエディタが無い、何故か Rails を紹介。
ワケワカンネェこのライター、ターゲットはどんな人を想定したの?

でも Ubuntu は標準で Memtest86+ が使えると知ったのは発見だった。
早速先日買ったはいいけど超不安定な 2GBx2 のメモリに換装してチェック。
動かしてイキナリまっ赤っ赤、こりゃ不安定なわけだ。

BIOS の設定を変更したり一枚ずつ付け替えたりして地味に実験。
どうやら片方が不良品のようだ、もう一枚買ってくるかトホホ。

対する日経ソフなんとかは ○uby 本が付録しているよ…
この雑誌もいいかげんに Python をやったらどうなのだ?と思うんだが。
ま、Windows じゃどっちも使い道が無い言語なのだが。

インストーラ

うおぉぉぉ!全然進まなかった。
結局インストーラはシェルスクリプトで書いているんだが。
とりあえずなんとかなったのをココにバックアップ。

#! /bin/sh

# -r オプションで削除
if test $# = 1; then
    if test $1 = -r; then
        rm -r /usr/share/y901x
        rm /usr/bin/y901x
        rm /usr/share/applications/y901.desktop
        rm /usr/share/pixmaps/y901x.xpm
    fi
else
    # 拡張子があるものだけ /usr/share にコピー
    if ! test -d /usr/share/y901x; then
        mkdir /usr/share/y901x
    fi
    cp -f *.* /usr/share/y901x/

    # /usr/bin に作成
    touch /usr/bin/y901x
    chmod 755 /usr/bin/y901x
    cat << _EOS_ > /usr/bin/y901x
#! /bin/sh
exec python /usr/share/y901x/y901main.py \$@
_EOS_

    # .desktop 作成、MimeType は Totem コピペ
    touch /usr/share/applications/y901.desktop
    cat << _EOSB_ > /usr/share/applications/y901.desktop
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Icon[ja_JP]=y901x
Name[ja_JP]=Y901x
Exec=y901x %U
Comment[ja_JP]=わいきゅうまるいちえっくす
Name=Y901x
Comment=y901x
Icon=y901x
StartupNotify=true
Categories=GNOME;GTK;AudioVideo;Video;Player;X-Ximian-Main;X-Red-Hat-Base;
MimeType=application/ogg;application/ram;(以下略
_EOSB_

    # アイコンのコピー
    cp -f y901x.xpm /usr/share/pixmaps/
fi

ヒアドキュメントとやらに詰まりまくった。
MimeType を入れただけでは「別のアプリで開く」でしか登録ができないなぁ。
Nautilus の右メニューに入れるにはどうすれば…まだ勉強が足らない。

それよりやはりカレントディレクトリをスクリプトで変更はやはりまずい。
そうすると glade ファイルの読み込みはどうすればいいんかいなぁ?

try:
    self.widgets = gtk.glade.XML("/usr/share/hoge/a.glade", "b")
except:
    self.widgets = gtk.glade.XML("a.glade", "b")

しか思いつかないし見つからないんだが…まだ勉強が足らない。

てか $@ でコマンドラインオプションを送るとリストで届くんだね。
コマンドラインオプションを付けると解析はどうすれば…まだ勉強が足らない。

アイコンデザインが…いつものことだ。

やりたいこと以外で詰まって全然進展しない!
まぁプログラミングってそういうもんですけどね。
Tips サイトは多いのに何も有効なアプリを公開していない人が多い理由はコレだよ。

追記

手抜きっぽいインストーラ

でなんとかなったぞい!
Nautilus への右メニューへは一度「別のアプリで開く」を行えば登録される。
ということでこの件は終わらせよう、先へ進めない。

UpdateManager のソースがマジで参考になったんだが、コレって Python 製なんだね。
何故こういうトコを強調して日本での Python 普及を唱える人が出ないのやら。
Mono の覚書のほうがアクセスが多いのがオイラは超気に入らないんだよ!