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/shexport 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-3echo 'showMessage()' > $CONTROL
echo 'show()' > $CONTROL
基本的には、昨日のソースと同一のものなんで、パターン1〜4については省略してます。
ってことで、こうすると問題無く UTF8な文字列と、半角スペースを表示することが出来ます。
問題があるとすれば、echo を使わない以上、echo -e "ああ\nああ"とかで、行中に改行コードを含めることが出来ません。なので、OUTPUTへ書き出す際でも、description(QString)を使って書き出す時のように、一行一行に分割してやらないといけないってことですか。
sedで置換する際に、改行コード打ち込んでやれれば良いかな?とも思うんですが、なんかこれがどうも上手くいかないんですよね。
むーん。