web-dev-qa-db-ja.com

BashアプリのGUIをすばやく作成する方法

たとえば、ボタンをクリックするといくつかのbashコマンドが実行されるように、bashを使用するアプリ用のシンプルなGUIを構築したいと思います。

シンプルなGUIクリエーターもありますが、新しいプログラミング言語を学ぶ必要のないボタンとテキストエリアだけが必要ですか?

6

私は答えを投稿しました 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

上記のスクリプトは、次のようなフォームを表示します。

enter image description here

データを入力して[OK]をクリックするか、キーボードのEnterキーを押すと、フォームデータがtest.txtというテキストファイルに書き込まれます。awkを使用して、フィールドセパレーターとしてパイプを使用した文字列であるフォームデータを分離しています。 awkを使用せずにデータを取得する直接的な方法があると思いますが、私は専門家ではありません。プロジェクトのホームをチェックして質問してください。もっとエレガントな方法を見つけることができます。

ここでyadを取得してインストールする方法:

http://www.webupd8.org/2010/12/yad-zenity-on-steroids-display.html

yadプロジェクトのホーム:

http://code.google.com/p/yad/

ここに他の例:

http://technostripe.com/yad-a-fork-of-zenity-with-more-features/

http://code.google.com/p/yad/wiki/Examples

まだフォームデザイナはありませんが、構文は非常にシンプルで非常に近いため、通常は問題になりません。

9
Sabacon

単純なユーザー入力には、zenityzenityパッケージ内にある)を使用できます。簡単な例は次のようなものです。

VARIABLE=$(zenity --entry --title="Give me inputz" --text="Write some stuff")
echo $VARIABLE

テキスト領域の場合(HTMLの世界で言うように)、構文を次のように変更します。

zenity --text-info --title="Give me inputz" --editable

そのマニュアル からもっと多くを見つけることができます。シンプルなスクリプトでの非常に柔軟な小さなライブラリユーザー入力です。

編集:いくつかの Linuxariaでの良い例 も見つけることができます。

7
Oli

これを見てください: http://sites.google.com/site/easybashgui

あなたが使う:

source easybashgui
input 2 "Address" "?" "Name" "?"
cp "$dir_tmp/$file_tmp" "test.txt"
clean_temp
3
Vaisarger

tkbash を試してください。

このような要素を指定できます

tkbash 1 button b1 -x 0 -y 0 -w 100 -h 30 -t "click me" --command "notify-send hi"
0
Blauhirn