たとえば、ボタンをクリックするといくつかのbashコマンドが実行されるように、bashを使用するアプリ用のシンプルなGUIを構築したいと思います。
シンプルなGUIクリエーターもありますが、新しいプログラミング言語を学ぶ必要のないボタンとテキストエリアだけが必要ですか?
私は答えを投稿しました here 、それは便利かもしれません、便宜上ここにもう一度置きます。
Yadはこの点で役立つ場合があります。Yadはより多くの機能を備えた禅のフォークで、そのうちの1つはフォームを作成する機能です。
以下に、フォームの非常に簡単な例を示します。
#!/bin/bash
frmdata=$(yad --title "Test Form" --form --field "Address" --field="Name")
frmaddr=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
frmname=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')
echo $frmaddr > test.txt
echo $frmname >> test.txt
上記のスクリプトは、次のようなフォームを表示します。
データを入力して[OK]をクリックするか、キーボードのEnterキーを押すと、フォームデータがtest.txtというテキストファイルに書き込まれます。awkを使用して、フィールドセパレーターとしてパイプを使用した文字列であるフォームデータを分離しています。 awkを使用せずにデータを取得する直接的な方法があると思いますが、私は専門家ではありません。プロジェクトのホームをチェックして質問してください。もっとエレガントな方法を見つけることができます。
ここでyadを取得してインストールする方法:
http://www.webupd8.org/2010/12/yad-zenity-on-steroids-display.html
yadプロジェクトのホーム:
ここに他の例:
http://technostripe.com/yad-a-fork-of-zenity-with-more-features/
http://code.google.com/p/yad/wiki/Examples
まだフォームデザイナはありませんが、構文は非常にシンプルで非常に近いため、通常は問題になりません。
単純なユーザー入力には、zenity
(zenity
パッケージ内にある)を使用できます。簡単な例は次のようなものです。
VARIABLE=$(zenity --entry --title="Give me inputz" --text="Write some stuff")
echo $VARIABLE
テキスト領域の場合(HTMLの世界で言うように)、構文を次のように変更します。
zenity --text-info --title="Give me inputz" --editable
そのマニュアル からもっと多くを見つけることができます。シンプルなスクリプトでの非常に柔軟な小さなライブラリユーザー入力です。
編集:いくつかの Linuxariaでの良い例 も見つけることができます。
これを見てください: http://sites.google.com/site/easybashgui
あなたが使う:
source easybashgui
input 2 "Address" "?" "Name" "?"
cp "$dir_tmp/$file_tmp" "test.txt"
clean_temp
tkbash を試してください。
このような要素を指定できます
tkbash 1 button b1 -x 0 -y 0 -w 100 -h 30 -t "click me" --command "notify-send hi"