লিনাক্সে বাশ স্ক্রিপ্ট থেকে জিইউআই বার্তা বাক্সটি কীভাবে প্রদর্শিত হবে?


151

আমি উবুন্টু লিনাক্সের নীচে কয়েকটি ছোট বাশ স্ক্রিপ্ট লিখছি। কোনও ইনপুট প্রবেশ করতে বা কোনও আউটপুট দেখার জন্য টার্মিনাল উইন্ডোর প্রয়োজন ছাড়াই আমি এগুলি জিইউআই থেকে চালাতে সক্ষম হতে চাই।

এখনও পর্যন্ত কেবলমাত্র ইনপুটটির জন্য দরকার sudo - এবং গ্যাক্সুডো সেই সূক্ষ্মতার জন্য একটি পাসওয়ার্ড। তবে আমি কোনও বার্তা বাক্স দেখানোর সহজ উপায় খুঁজে পাইনি। কোনও ধরণের 'gkmessage' কমান্ড পাওয়া যায়? আমি একটি ডিফল্ট উবুন্টু ইনস্টলে উপস্থিত কিছু পছন্দ করব, তবে প্রয়োজনে নতুন প্যাকেজ ইনস্টল করতে আমার আপত্তি নেই।


উত্তর:


143

আমি বিশ্বাস করি জেনিটি আপনি যা চান তা করবে। এটি বিশেষত কমান্ড লাইন থেকে জিটিকে ডায়লগ প্রদর্শনের জন্য ডিজাইন করা হয়েছে এবং এটি উবুন্টু প্যাকেজ হিসাবে উপলব্ধ ।


4
zenity --helpএত সহায়ক নয়। এটি দরকারী হিসাবে তৈরি করতে, আপনাকে অবশ্যই --text=My text hereএটির কিছু প্রদর্শন করার জন্য সেট করেছেন তা নিশ্চিত করতে হবে ...
স্টিফেন ২

10
উদাহরণস্বরূপzenity --info --text="Calculation complete"
ক্রেগ ম্যাককুইন

3
@ স্টেফেন, কিছু বিজোড় কারণে সঠিক আদেশটি zenity --help-all
GKFX

3
সহায়তা বার্তা প্রিন্ট করার জন্য ডিসপ্লেটি খুলতে হবে এমন প্রোগ্রামগুলি আমি পছন্দ করি না ...
thoni56

আমি .xinitrcআমার xorgসার্ভারটি শুরু করার সময় আমার মধ্যে সতর্কতা বা ত্রুটিগুলি প্রদর্শন করতে এই পদ্ধতিটি ব্যবহার করি । অন্যথায় ত্রুটিগুলি স্বচ্ছ হবে। আমি এই পছন্দ করা zenityওভার kdialogথেকে ডি-ই এখনো শুরু করা হয়নি এবং জিটিকে লিব আরো লাইটওয়েট হয়।
cmevoli

152

আপনি যদি উবুন্টুকে অনেকগুলি ডিস্ট্রো ব্যবহার করেন তবে notify-sendকমান্ডটি সেই ডান দিকের শীর্ষ কোণে সেই দুর্দান্ত ধ্বংসযোগ্য বিজ্ঞপ্তিগুলির মধ্যে একটি ফেলে দেবে। তাই ভালো:

notify-send "My name is bash and I rock da house"

সুন্দর!


2
এটি ফেডোরার সাথেও কাজ করে। আমি বেশ নিশ্চিত যে কোনও লিনাক্স ডিস্ট্রো এটি করতে পারে।
kmatheny

4
রাস্পবিয়ান জিএনইউ / লিনাক্স on এ কাজ করে না there এমন কোন প্যাকেজ ইনস্টল করার দরকার আছে কি?
কার্ল ভার্বিস্ট

1
ডিবিয়ান রেপোসে: অপ্ট-ক্যাশে অনুসন্ধান বিজ্ঞপ্তি-ওএসডি @ কার্লভারবিয়েস্ট
সান্তা

2
কমপক্ষে উবুন্টু ১৪.০৪-তে, কল যদি নোটিফাই-পাঠান টাইমআউট 0 এর সাথে "নোটিফাইড-সেন্ড -t 0 'হাই!" "আপনি একটি পপআপ ডায়ালগ পাবেন যা শেষ হয় না।
ভ্যাঙ্কান 1

ডেবিয়ান জেসিতে libnotify-binপ্যাকেজটিতে notify-sendবাইনারি থাকে। জিনোম 3 এর প্রয়োজন হবে না বলে মনে হয় notify-osdতবে আমার ধারণা অন্যান্য ডেস্কটপ পরিবেশের সাথে libnotify-bin
এটিরও

78

প্রত্যেকে জেনেটের কথা উল্লেখ করে, অন্য অনেকগুলি আছে বলে মনে হয়। একটি মিশ্র তবে আকর্ষণীয় তালিকাটি http : //al বিকল্পto.net/software/zenity/ এ রয়েছে

প্রথমত, জেনটির উদাহরণ যা পাঠ্য বিন্যাসের মার্কআপ, উইন্ডো শিরোনাম, বোতামের লেবেল বিশিষ্ট।

zenity \
--info \
--text="<span size=\"xx-large\">Time is $(date +%Hh%M).</span>\n\nGet your <b>coffee</b>." \
--title="Coffee time" \
--ok-label="Sip"

gxmessage

gxmessage "my text"

xmessage

xmessageখুব পুরানো তাই এটি স্থিতিশীল এবং সম্ভবত এক্স ব্যবহার করা সমস্ত বিতরণে উপলব্ধ (যেহেতু এটি এক্স দিয়ে বিতরণ করা হয়েছে)। এটি এক্স রিসোর্সের মাধ্যমে কাস্টমাইজযোগ্য, যারা লিনাক্স বা ইউনিক্স দীর্ঘকাল ধরে ব্যবহার করছেন তার অর্থ কী .Xdefaults, ( যে কেউ?) এর অর্থ কী তা জানতে ।

xmessage -buttons Ok:0,"Not sure":1,Cancel:2 -default Ok -nearmouse "Is xmessage enough for the job ?" -timeout 10

kdialog

(পরীক্ষিত না)

পিপিএ-তে

ইয়াড: স্টেরয়েডগুলিতে জেনিটি [শেল স্ক্রিপ্ট থেকে গ্রাফিকাল ডায়ালগগুলি প্রদর্শন করুন] ~ ওয়েব আপডেট 8: উবুন্টু / লিনাক্স ব্লগ । অটো-আকারের ডায়ালগগুলি মনে হচ্ছে না।

echo My text | yad \
--text-info \
--width=400 \
--height=200

আরও বড় উদাহরণ

yad \
--title="Desktop entry editor" \
--text="Simple desktop entry editor" \
--form \
--field="Type:CB" \
--field="Name" \
--field="Generic name" \
--field="Comment" \
--field="Command:FL" \
--field="Icon" \
--field="In terminal:CHK" \
--field="Startup notify:CHK" "Application" "Name" "Generic name" "This is the comment" "/usr/bin/yad" "yad" FALSE TRUE \
--button="WebUpd8:2" \
--button="gtk-ok:0" \
--button="gtk-cancel:1"

অন্যরা উবুন্টু স্ট্যান্ডার্ড ভান্ডারে নেই

  • shellgui
  • xdialog
  • gtkdialog

অফ-টপিক (টার্মিনালের জন্য)

whiptail --msgbox "my text" 10 20
dialog --msgbox "my text" 10 20

সম্পাদনা করতে নির্দ্বিধায়।



টিউরস্মমনার টিপটির জন্য ধন্যবাদ। আগ্রহী পাঠকের জন্য পার্থক্যটি হ'ল whiptail --infobox(যা বিকল্প স্ক্রিন সমর্থন করে এমন টার্মিনালগুলিতে সঠিকভাবে কাজ করে না) ব্যবহারকারী ইনপুটটির জন্য অপেক্ষা না করে ফিরে আসে, যখন whiptail --msgbox(যা কাজ করে) প্রস্থান করার আগে ব্যবহারকারী নিশ্চিতকরণের জন্য অপেক্ষা করে।
স্টাফেন গ্যারিচন

আমি স্মরণে নেই যে বাক্সের সাথে অসন্তুষ্ট থাকি, আমার উদ্দেশ্যগুলির জন্য সেই সময়ে, আমি মনে করি লগ বা এর মতো কিছুতে আউটপুটটি দেখার জন্য আমার প্রয়োজন ছিল;
থারস্ম্মোনার

অপশন অনেক! খুব সুন্দর উদাহরণ
artu-hnrq

49

Zenity আবেদন প্রদর্শিত হয় আপনি যা খুঁজছিলেন তা যাবে।

জেনिटी থেকে ইনপুট নিতে , আপনি একটি পরিবর্তনশীল নির্দিষ্ট করতে পারেন এবং এতে জেনটি - কেন্দ্রের আউটপুট সংরক্ষণ করতে পারেন। এটি দেখতে এমন কিছু দেখাচ্ছে:

my_variable=$(zenity --entry)

আপনি যদি এখন আমার_পরিবর্তনযোগ্য মানটির দিকে তাকান তবে এটি जेনেটি পপ-আপ এন্ট্রি ডায়ালগটিতে টাইপ করা হয়েছিল।

আপনি যদি ডায়ালগটিতে ব্যবহারকারী (বা আপনার) প্রবেশ করান তবে কোনও প্রম্পট দিতে চান, আপনি যে লেবেলটি চান তার সাথে --text স্যুইচটি যুক্ত করুন । এটি দেখতে এমন কিছু দেখাচ্ছে:

my_variable=$(zenity --entry --text="What's my variable:")

জেনिटीতে অন্যান্য অনেক দুর্দান্ত অপশন রয়েছে যা নির্দিষ্ট কাজের জন্য রয়েছে, তাই আপনি জেনটি - হেল্প সহ সেইগুলি পরীক্ষা করে দেখতে পারেন । একটি উদাহরণ হ'ল - ক্যালেন্ডার বিকল্প যা আপনাকে গ্রাফিকাল ক্যালেন্ডার থেকে একটি তারিখ নির্বাচন করতে দেয়।

my_date=$(zenity --calendar)

যা ব্যবহারকারী ক্লিক করেছে তার উপর ভিত্তি করে একটি দুর্দান্ত বিন্যাসিত তারিখ দেয়:

echo ${my_date}

দেয়:

08/05/2009

স্লাইডার নির্বাচনকারীদের জন্য ত্রুটি, তালিকা এবং আরও অনেক কিছু রয়েছে।

আশাকরি এটা সাহায্য করবে.


আমি দেখতে zentityদেখতে দুর্দান্ত লাগছে। তবে এটি উবুন্টু 12.04 এর অংশ নয়, সুতরাং আমি এর gxmessageপরিবর্তে চলেছি ।
পিটার ভি।


8

এখানে একটি ছোট টিসিএল স্ক্রিপ্ট যা আপনি যা চান তা করবে। উশুন্টুতে উইশ ইন্টারপ্রেটারটি ডিফল্টরূপে ইনস্টল করা উচিত।

#!/usr/bin/wish
pack [label .msg -text [lindex $argv 0]]
pack [entry .ent]
bind .ent <KeyPress-Return> { puts [.ent get]; destroy . }
focus .ent

এটিকে কল করুন:

myanswer=`gui-prompt "type your answer and press enter"`

7

alertএবং notify-sendএকই জিনিস বলে মনে হচ্ছে। আমি ব্যবহার করিnotify-send নন-ইনপুট বার্তাগুলি কারণ এটি ফোকাস চুরি করে না এবং জেনिटी ইত্যাদি বন্ধ করার কোনও উপায় আমি খুঁজে পাচ্ছি না।

যেমন

# This will display message and then disappear after a delay:
notify-send "job complete"

# This will display message and stay on-screen until clicked:
notify-send -u critical "job complete"

6

এছাড়াও রয়েছে dialogএবং কে.ডি. ভার্সনও রয়েছে kdialogdialogস্ল্যাকওয়ার দ্বারা ব্যবহৃত হয়, তাই এটি অন্যান্য বিতরণে তাত্ক্ষণিকভাবে উপলব্ধ নাও হতে পারে।


6

আর কিছু না থাকলে। আপনি একটি এক্সটার্ম চালু করতে এবং এটিতে এটি প্রতিধ্বনি করতে পারেন:

 xterm -e bash -c 'echo "this is the message";echo;echo -n "press enter to continue "; stty sane -echo;answer=$( while ! head -c 1;do true ;done);'

3

উবুন্টুর সতর্কতা সম্পর্কে কীভাবে । এটি শেষ হওয়ার সতর্ক করতে কোনও অপারেশন করার পরেও ব্যবহার করা যেতে পারে এবং অপারেটন ত্রুটিযুক্ত করে ফিনিশ করা থাকলে এমনকি রেড ক্রস আইকনও দেখায়

ls -la; alert

3

জেনটিটি হ'ল সঠিক সরঞ্জাম যা আমি মনে করি যে আপনি অনুসন্ধান করছেন।

অথবা

zenity --help

0

কেডিয়ালগ এবং ডায়লগ উভয়ই ভাল তবে আমি জেনিটির প্রস্তাব দিই। এক্সমেসেজ বা কথোপকথনটি দ্রুত, সহজ এবং আরও অনেক ভাল দেখাচ্ছে।


0

গাম্বাস জিটিকে / কিউটি নিয়ন্ত্রণ (জিইউআই অবজেক্টস) ব্যবহারের জন্য বাশ স্ক্রিপ্টের উদাহরণ: গাম্বাস আইডিই এমনকি আরও বড় জিইউআই ডিজাইন করতে এবং জিইউআই সার্ভার হিসাবে কাজ করতে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ এক্সপ্লিকেশনগুলি গাম্বাস অ্যাপ স্টোর থেকে ডাউনলোড করা যায়।
https://gambas.one/gambasfarm/?id=823&action=search

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.