
表示したいテキストに「コマンド」が含まれており、スクリプトが停止しているようです。
字幕ファイルの最初の20行を表示するコード:
junknownsub=$(head -20 "$f")
zenity --question --text="$jsubtitle\n\nIs this English?\n\n$junknownsub" --width=200 --height=200
以下はテキストです。
0
00:00:00,000 --> 00:00:18,338
<b><font color="#909090">^.^.^.^.movie .^.^.^.^</font></b>
<b><font color="#804040">®</font></b> <b><font color=#ff0000> </font></b> <b><font color="#804040">®</font></b>
私はすべての「一般」テキストが問題なくうまく機能するので、問題を引き起こすのは<>^文字だと思います。
とにかくこの問題を解決する方法はありますか?
私が以前に受けたアドバイスは次のとおりです。
printf -v junknownsub '%q' $(head -n20 "$f")
しかし、これはNemoを停止させるだけです。
答え1
いくつかのダイアログボックスが表示されるGNOMEジェニティサポートするPango マークアップ言語デフォルトでは、ダイアログボックスのテキストから解釈されます。zenity
例のテキストが無効なパンゴタグで解析されています。これはシェルの問題ではありません。
これを防ぐには、次のようにします。
- この
--no-markup
オプションを使用してください。欠点は、\n
ダイアログボックスのテキストをフォーマットするために使用される順序を含むマークアップが文字通り表示されることです。 - マーカーを削除するために字幕テキストを前処理します。