いくつかのGUIの問題に応じて、さまざまなタスクを実行する小さなbashスクリプトを作成しようとしています。
私が今いるところは次のとおりです。
[Timomey@timomeyswetab ~]$ TEST=`zenity --question`; echo test=$TEST
test=
[Timomey@timomeyswetab ~]$ TEST=`zenity --question`; echo test=$TEST
test=
[Timomey@timomeyswetab ~]$
問題は、期待どおりに機能しないことです。 TEST変数にわずかな違いがあるはずですが、まったく見えません。私は何が間違っていましたか?
ありがとう
答え1
zenity
選択結果は標準出力に書き込まれません。コマンドラインから実行して自分で試してください。
$ zenity --question
$
ご覧のとおり、何も表示されないため、TEST
変数は空です。
代わりにzenity
返される値--question
は終了状態です。これは$?
内部変数を通して(bashで)見ることができます。
$ zenity --question
「いいえ」ボタンを選択します。
$ echo $?
$ 1
マニュアルページに記載されているように、0は「はい」を意味し、1は「いいえ」を意味し、5はコマンドがタイムアウトしたことを意味します。
したがって、あなたのコマンドは次のようになります。
$ zenity --question; echo test=$?
$ test=1
コマンドごとにzenity
動作が異なります。マニュアルページで説明するように、--entry
コマンドは出力を std-out に送信します。
$ zenity --entry
$ Test 1..2..3..
したがって、テストではこの特定のコマンドを使用します。