Hatena::ブログ(Diary)

TAKETYONの作業記録 at りなざうテクノウ


 | 

2004-07-09

[][][]Qtopia Shell Bridge Dialog その8 問題解決?(^^;)

 あれから、さらに悪戦苦闘した結果、

grep "dame" $MSG_FILE | sed -e 's/^.*=//' > $OUTPUT

だと、通ることが判明(^^;)。

 うーむ、基本的には昨日の

echo "`grep "dame" $MSG_FILE | sed -e 's/^.*\=//'`" > $OUTPUT

とやってるコトは同じハズなんですけどね。

 違いがあるとすれば、echoを使って最終出力するか、grep | sed の抽出結果をそのまま垂れ流しにするか?くらいのモンだと思うんですが。

 こうなると、悪さしてるのは echoコマンドの方かもしれません(苦笑)。

 って、ことで昨日のソースを若干修正。

# Qdame2.sh
#!/bin/sh

export QSHDLG_APP=Qdame
INPUT=/var/spool/qshdlg/input_${QSHDLG_APP}
OUTPUT=/var/spool/qshdlg/output_${QSHDLG_APP}
CONTROL=/var/spool/qshdlg/control_${QSHDLG_APP}

MSG_FILE="/home/zaurus/work/test.lang"

qshdlg -t "QDame" -c utf8 custom &

while [ ! -p ${CONTROL} ]
do
	:
done

# PATTERN 5 (別ファイルから CONTROL経由 [echo無し])
grep "ABC" $MSG_FILE | sed -e 's/^.*=/description(QString) /' > $CONTROL #P5-1
grep "ok" $MSG_FILE | sed -e 's/^.*=/description(QString) /' > $CONTROL #P5-2
grep "dame" $MSG_FILE | sed -e 's/^.*=/description(QString) /' > $CONTROL #P5-3

# PATTERN 6 (別ファイルから 直接OUTPUTへ [echo無し])
grep "ABC" $MSG_FILE | sed -e 's/^.*=//' > $OUTPUT #P6-1
grep "ok" $MSG_FILE | sed -e 's/^.*=//' > $OUTPUT #P6-2
grep "dame" $MSG_FILE | sed -e 's/^.*=//' > $OUTPUT #P6-3

echo 'showMessage()' > $CONTROL
echo 'show()' > $CONTROL

実行結果

 基本的には、昨日のソースと同一のものなんで、パターン1〜4については省略してます。

 ってことで、こうすると問題無く UTF8な文字列と、半角スペースを表示することが出来ます。

 問題があるとすれば、echo を使わない以上、echo -e "ああ\nああ"とかで、行中に改行コードを含めることが出来ません。なので、OUTPUTへ書き出す際でも、description(QString)を使って書き出す時のように、一行一行に分割してやらないといけないってことですか。

 sedで置換する際に、改行コード打ち込んでやれれば良いかな?とも思うんですが、なんかこれがどうも上手くいかないんですよね。

 むーん。

[][][]Qtopia Shell Bridge Dialog その9 今度こそ問題解決(T_T)

 さらに、もちょっと検証してくと、 echoコマンドだけじゃなく、readコマンドとかでも同じような不具合が出てくることが判ってきました。

 INPUTパイプの中身を

cat /var/spool/qshdlg/input >> /home/zaurus/work/argument.txt

なんてして、覗いてみる限りでは、qshdlg自体はちゃんとそのままやりとりしてくれているようです。すんません、yaktyさん。やっぱり濡れ衣でした(^^;)。

 さて、こうなると何が困るかと言うと、qshdlgからインプットダイアログなんかを通じて、日本語文字列を送った場合に、スクリプト側でそれを受け取る手段が無いんですよね。

 また、これで再び手詰まり状態に陥りかけたんですが・・・、よく考えたら実行シェルbashにした場合の挙動確かめてませんでした。

 以前にも、いっぺん shbash日本語関係の挙動変わるのは経験済なのに、すっかり忘れてた(^^;)。

 で、確かめてみると・・・あっさり動作。ヤダ、もう(T_T)。いや、ココは素直に動作したのを喜ぶトコなんでしょうけど。


 わしの詰めがアマいだけかもしれませんが(苦笑)。

 | 

Linux Zaurus Technical Know-howにもどる
Connection: close