انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: norouzi90 در 17 خرداد 1401، 10:51 ب‌ظ

عنوان: تایپ یک کلمه بصورت اتومات (حل شد)
ارسال شده توسط: norouzi90 در 17 خرداد 1401، 10:51 ب‌ظ
با سلام و احترام،

می خواهم در هنگام لاگین کاربر ، یک text editor یا Terminal Emulators باز شود و در آن عبارت " hello " به ترتیب حروف بصورت اتومات نوشته شود.
این طرحی است که مدتی به ذهنم افتاده ولی هیچ ایده ای در موردش ندارم. چطور می شود بدون آنکه اپراتور چیزی تایپ کند ، این کلمه بصورت حرف به حرف تایپ بشود؟
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 18 خرداد 1401، 12:10 ق‌ظ
با Gnome Tweaks میتونی پایانه رو تنظیم کنی پس از بالا اومدن سامانه اجرا بشه ، بعد توی .bashrc بگی اگه بار نخست بود که اجرا کن فلان اسکریپتو و مثلا یه پرونده بسازه تو /tmp که اگه بعدا باز کردی پایانه رو ، بررسی کنه اگه اون پرونده وجود داره ادامه نده ، چه کاریو ؟ اجرای اسکریپی که برنامه figlet رو اجرا کنه بنویسه h ، پس از نیم ثانیه پاک کنه بنویسه he و ... تا کامل برسه به hello
این ایده منه : )
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: Dr.Code در 18 خرداد 1401، 01:22 ق‌ظ
با Gnome Tweaks میتونی پایانه رو تنظیم کنی پس از بالا اومدن سامانه اجرا بشه ، بعد توی .bashrc بگی اگه بار نخست بود که اجرا کن فلان اسکریپتو و مثلا یه پرونده بسازه تو /tmp که اگه بعدا باز کردی پایانه رو ، بررسی کنه اگه اون پرونده وجود داره ادامه نده ، چه کاریو ؟ اجرای اسکریپی که برنامه figlet رو اجرا کنه بنویسه h ، پس از نیم ثانیه پاک کنه بنویسه he و ... تا کامل برسه به hello
این ایده منه : )
فکر کنم این تو ذهنته
figlet h
Clear
Figlet hi
تمیز در نمیاد
باید براش انیمیشن طراحی بشه
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 18 خرداد 1401، 03:01 ب‌ظ
یک چیزی نوشتم که بشه روش کار بکنم و با کمک شما بهترش کنم .
چکار بکنم حروفی که چاپ می شوند ، عوض اینکه هر کدامشان در یک سطر جدید چاپ بشوند ، پشت سرهم فقط در یک سطر چاپ بشوند؟


#!/bin/bash

sleep 2 &
wait -n
echo  "h"
sleep 2 &
wait -n
echo  "e"
sleep 2 &
wait -n
echo  "l"
sleep 2 &
wait -n
echo  "l"
sleep 2 &
wait -n
echo  "o"
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 18 خرداد 1401، 03:42 ب‌ظ
فکر کنم این تو ذهنته
نه !
figlet h
sleep 0.5
clear
figlet he
...
یک چیزی نوشتم که بشه روش کار بکنم و با کمک شما بهترش کنم .
چکار بکنم حروفی که چاپ می شوند ، عوض اینکه هر کدامشان در یک سطر جدید چاپ بشوند ، پشت سرهم فقط در یک سطر چاپ بشوند؟
بالا گذاشتم ، بسته figlet اگه نخواستی نصب نکن و با همون اکو پیش برو
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: آرگون در 18 خرداد 1401، 03:46 ب‌ظ
شاید این کمک کنه :

#!/bin/bash
sleep 0.5 &
wait -n
echo "h"
sleep 0.5 &
wait -n
clear
echo "he"
sleep 0.5 &
wait -n
clear
echo "hel"
sleep 0.5 &
wait -n
clear
echo "hell"
sleep 0.5 &
wait -n
clear
echo "hello"
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 18 خرداد 1401، 03:49 ب‌ظ
کنده و چیزای اضاف زیاد داره این ، همونی که نوشتم بهتره
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: آرگون در 18 خرداد 1401، 03:53 ب‌ظ
کنده و چیزای اضاف زیاد داره این ، همونی که نوشتم بهتره
sleep شمارشش با ثانیه هست؟
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 18 خرداد 1401، 03:56 ب‌ظ
اره
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: آرگون در 18 خرداد 1401، 04:06 ب‌ظ
اره
ویرایشش کردم، فک کنم مشکل کندیش کمتر شده باشه
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 18 خرداد 1401، 04:11 ب‌ظ
اخه wait -n میخواد چیکار ؟
حتی اون & اخر دستور sleep رو هم نمیخواد
دابل کوت های اکو هم لازم نیس
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 18 خرداد 1401، 04:12 ب‌ظ
اول شروع اسکریپت چرا صبر بکنه اصلا ؟
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 18 خرداد 1401، 04:26 ب‌ظ
ممنون از بزرگواران الان درست شد.

#!/bin/bash

sleep 2 &
wait -n
echo -n "h"
sleep 2 &
wait -n
echo   -n "e"
sleep 2 &
wait -n
echo   -n "l"
sleep 2 &
wait -n
echo   -n "l"
sleep 2 &
wait -n
echo "o"


آیا راهی وجود دارد که سایز و یا رنگ فونت های خروجی را تغییر بدهم؟
آیا از کدهای html  در bash script می توان استفاده کرد؟
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: آرگون در 18 خرداد 1401، 05:06 ب‌ظ
اخه wait -n میخواد چیکار ؟
حتی اون & اخر دستور sleep رو هم نمیخواد
دابل کوت های اکو هم لازم نیس
نمیدونستم ;D
ولی ممنون که گفتی
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 18 خرداد 1401، 05:30 ب‌ظ
اخه wait -n میخواد چیکار ؟
بدون wait -n ، اسکریپتی که من نوشتم درست عمل نمی کند یعنی sleep ها اجرا نمی شوند و عوض اینکه حرف به حرف نوشته شود خود کل کلمه بدون هیچ وقفه ای درج می گردد. دلیل علمی قضیه را نمی دانم ، این wait -n را از اینترنت پیدا کردم و چپوندم تو اسکریپت و درست عمل کرد.

حتی اون & اخر دستور sleep رو هم نمیخواد
درست می فرمایید، امتحان کردم نیازی به استفاده از امپرساند نبود ولی نمیدانم در اسکریپت های موجود در اینترنت از این علامت بعد از sleep استفاده می کنند، دلیلش را نمی دانم چیست ، گفتم حتما یک خبری است و من هم استفاده کردم!!!

دابل کوت های اکو هم لازم نیس
درست می فرمایید، امتحان کردم نیازی به استفاده از دابل کوت های اکو نبود ولی نظر شخصی ام این است که در اسکریپت با علایم کوتیشن یا دابل کوتیشن بهتر می توان string ها را تشخیص داد. من هم بدین دلیل ترجیح می دهم استفاده کنم.


اول شروع اسکریپت چرا صبر بکنه اصلا ؟
بنظرم این وقفه ها در اجرای درست دستورات بهتر است باشند. می خواهیم در هنگام لاگین کاربر یک text editor یا Terminal Emulators باز شود و در آن عبارت " hello " به ترتیب حروف بصورت اتومات نوشته شود. این text editor یا ترمینال برای باز شدن در مونیتور کاربر بصورت کامل نیازمند زمان است و ما با وقفه اولی این عمل را انجام می دهیم.

عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 18 خرداد 1401، 06:01 ب‌ظ
۱ . واسه من که اینجوری نیست !
۲ . اون علامت یعنی توی پس زمینه اجرا کن ولی اینجا فرقی نمیکنه باشه یا نه !
۳ . بله برای اصولی نوشتن اینکار لازمه ولی من به شخصه حداکثر سبکی رو میخوام !
۴ . بشدت عجیب بود اینی که گفتی ، مگه قراره کارا تداخل پیدا کنن ؟ خودش میفهمه به ترتیب بره و لازم نیست این وقفه اولش
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: esmaeelE در 21 خرداد 1401، 03:45 ق‌ظ
آیا راهی وجود دارد که سایز و یا رنگ فونت های خروجی را تغییر بدهم؟
آیا از کدهای html  در bash script می توان استفاده کرد؟

می‌توانید از کدهای escape character برای ترمینال استفاده کنید.

این پیوند‌ها را نگاه کنید.

https://unix.stackexchange.com/a/37404/235261
https://www.delftstack.com/howto/linux/change-color-of-echo-in-bash
https://unix.stackexchange.com/a/37272/235261

عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 21 خرداد 1401، 10:52 ب‌ظ
با تشکر از آقای esmaeelE ، زحمت کشیدید.

 تا آنجاییکه از این لینک ها متوجه شدم ، تغییرات در این زمینه در مورد رنگ فونتها و همچنین در bold, underlined کردن آنها امکانپذیر است . ولی متاسفانه نمی دانم به چه دلیلی سایز فونتها بنظر می رسد غیرقابل تغییر می باشد.
۱- بنظرتان چرا مثلا رنگ فونتها قابل تغییر است ولی سایز آنها نه؟
۲-اگر به عکس نگاه کنید مثلا در کناره های سطرهای 30 و 31  کلیک کرده ام ، یک علامت مثبت ( + ) در کنار این سطرها افتاده است، منظور از این علامت مثبت چیست؟(عکس 1)
۳- وقتیکه در ترمینال تایپ می کنم   test.sh/.  اسکریپت ها در داخل همین ترمینال اجرا می شود، چکار کنم که با RUN کردن این فایل ،ترمینالی باز بشود و این دستورات در داخل آن ترمینال اجرا بشود؟
خودم به ابتدای اسکریپت دستور    &  gnome-terminal  را اضافه کردم ولی فایده ای نداشت تنها یک ترمینال باز می شود ولی در ادامه کار این دستورات در آن اجرا نمی شود؟( بهمین جهت کامنتش کردم)
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: Dragon- در 21 خرداد 1401، 11:12 ب‌ظ
۱- چون تنظیمات مربوط به فونت توی برنامه‌های ترمینال فقط توسط شبیه‌ساز ترمینال اعمال میشن.
۲- فکر کنم خودتون کنار اونها کلیک کردید و باعث شده این علامت‌ها ظاهر بشن. اگه اینجوری باشه، باید با کلیک مجدد روی همون علامت‌ها، حذف بشن.
۳- شاید با ساختن فایل desktop. مناسب برای اونها بشه اینکار رو کرد.

چرا اسکریپت رو به این شکل نوشتید؟ اون علامت & آخر هر sleep رو بردارید تا sleep توی پس زمینه اجرا نشه. اون wait -n ها رو هم حذف کنید.
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 22 خرداد 1401، 12:17 ق‌ظ

فکر کنم خودتون کنار اونها کلیک کردید و باعث شده این علامت‌ها ظاهر بشن. اگه اینجوری باشه، باید با کلیک مجدد روی همون علامت‌ها، حذف بشن.
درست می فرمایید. ولی می خواستم  بدانم به چه دردی می خورد.

چرا اسکریپت رو به این شکل نوشتید؟ اون علامت & آخر هر sleep رو بردارید تا sleep توی پس زمینه اجرا نشه. اون wait -n ها رو هم حذف کنید.
درست فرمودید،اضافی بودند و اصلاح شد ولی در خروجی تاثیری نداشت و خروجی هر دو دستور یکی است.( بنده خدا Sudo ، کمی بالاتر همین را گفته بودند ولی نمیدانم آنموقع همین ها را اصلاح کردم چرا آنموقع اصلا درست در نمی آمد!!)

۳- شاید با ساختن فایل desktop. مناسب برای اونها بشه اینکار رو کرد.
نشد. نمی دانم کجای کار اشکال دارد.(عکس 2)
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: esmaeelE در 22 خرداد 1401، 06:53 ق‌ظ
۱- بنظرتان چرا مثلا رنگ فونتها قابل تغییر است ولی سایز آنها نه؟
۲-اگر به عکس نگاه کنید مثلا در کناره های سطرهای 30 و 31  کلیک کرده ام ، یک علامت مثبت ( + ) در کنار این سطرها افتاده است، منظور از این علامت مثبت چیست؟(عکس 1)
۳- وقتیکه در ترمینال تایپ می کنم   test.sh/.  اسکریپت ها در داخل همین ترمینال اجرا می شود، چکار کنم که با RUN کردن این فایل ،ترمینالی باز بشود و این دستورات در داخل آن ترمینال اجرا بشود؟
خودم به ابتدای اسکریپت دستور    &  gnome-terminal  را اضافه کردم ولی فایده ای نداشت تنها یک ترمینال باز می شود ولی در ادامه کار این دستورات در آن اجرا نمی شود؟( بهمین جهت کامنتش کردم)

۳. با توجه به ویژگی‌ها شبیه‌ساز ترمینال می‌تونید این‌کار را انجام دهید.

xterm -hold -e "echo Hello My World"
https://stackoverflow.com/questions/42444615/how-to-write-a-shell-script-to-open-four-terminals-and-execute-a-command-in-each

دلیل اینکه با روش شما دستورات در ترمینال اجرا نمی‌شوند این است.

#/bin/bash
gnome-termianl
ls
w

پوستهٔ بش شروع به اجرای خط به خط برنامه می‌کند. هر خط را یک پردازهٔ(process) جدا می‌بیند و هر کدام را مستقل از هم اجرا می‌کند.

می‌تونید بررسی کنید هر کدام یک pid مستقل دارند.

۱. فکر می‌کنم اندازهٔ قلم ویژگی خود پایانه یا در اینجا شبیه‌ساز باشه و ارتباطی با پوسته نداشته باشه.
اندازهٔ قلم را می‌توانید از preferences مربوط به برنامهٔ شبیه‌ساز پایانه تغییر دهید.

دستور setfont هم هست ولی اینطور به نظر می‌رسه که در ترمینال کار نمی‌کنه فقط مربوط به tty1 باشد.

عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: Dragon- در 22 خرداد 1401، 12:11 ب‌ظ
۳- شاید با ساختن فایل desktop. مناسب برای اونها بشه اینکار رو کرد.
نشد. نمی دانم کجای کار اشکال دارد.(عکس 2)
یه Terminal=true اضافه کنید، ببینید درست نمیشه؟

یه بار سعی کنید اینجوری اسکریپت رو اجرا کنید، شاید توی یه ترمینال جدید اجرا بشه.
gnome-terminal --command=/path/to/script.sh
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 22 خرداد 1401، 09:02 ب‌ظ
یه Terminal=true اضافه کنید، ببینید درست نمیشه؟
نه، درست نشد.

یه بار سعی کنید اینجوری اسکریپت رو اجرا کنید، شاید توی یه ترمینال جدید اجرا بشه.
gnome-terminal --command=/path/to/script.sh
بله ،اجرا می شود و یک پنجره ترمینال جداگانه باز می شود و اسکریپت ها در آن بدرستی اجرا می شوند ، ولی در همان ترمینال اصلی دو تا تذکر داده است. اگر در مورد آنها کمی راهنمایی بفرمایید ممنون می شوم:
نقل‌قول
# Option “--command” is deprecated and might be removed in a later version of gnome-terminal.
نقل‌قول
# Use “-- ” to terminate the options and put the command line to execute after it.
اگر بخواهیم به این دو تا تذکر عمل نماییم ، برای اجرای اسکریپت بجای این فرمانی که فرمودید ، چه فرمانی بایستی بکار ببریم؟
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: Dragon- در 22 خرداد 1401، 09:25 ب‌ظ
اینجوری عمل کنید:
gnome-terminal -- /path/to/script
معمولا وقتی برنامه‌های ترمینال به -- می‌رسند، هر چیزی که بعد از اون نوشته شده رو به عنوان آپشن به حساب نمیارن‌.
برای مثال دستور رو ببینید:
rm -- -rfدستور بالا باعث میشه که rm سعی کنه فایلی به اسم rf- رو پاک کنه. به عبارتی rf- دیگه به عنوان یه آپشن پردازش نمیشه.
ممکنه یه دستور اینجوری نباشه ولی اکثر دستورات اینجوری هستند.
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 22 خرداد 1401، 11:05 ب‌ظ
ممنون، درست اجرا می شود.
 چرا در دستوری که دادید بجای " gnome-terminal " نمی توان " usr/bin/x-terminal-emulator/  " را بکار برد؟
( اگر توزیع دیگری داشتم که ترمینال پیش فرض آن ترمینال گنوم نبود ، بایستی این فرمان تغییر بیابد ، می خواستم یک جمله عمومی بنویسم که بدون تغییر در تمامی توزیع ها بکار برود.)
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 23 خرداد 1401، 10:40 ق‌ظ
در موارد زیر هم دوستان اگر نظری داشتند ،ممنون می شوم راهنمایی بفرمایید:

۱- الان دو تا فایل دارم یکی بنام  test.sh با محتویات زیر:
#!/bin/bash

sleep 5
 
echo -n "$(tput setaf 1)H"
sleep 2

echo   -n "$(tput setaf 1)e"
sleep 2

echo   -n "$(tput setaf 1)l"
sleep 2

echo   -n "$(tput setaf 1)l"
sleep 2

echo -n "$(tput setaf 1)o"
sleep 2

echo -en  "\t"
sleep 2

echo -n  "$(tput setaf 2)W"
sleep 2

echo -n "$(tput setaf 2)o"
sleep 2

echo -n "$(tput setaf 2)r"
sleep 2

echo -n "$(tput setaf 2)l"
sleep 2

echo "$(tput setaf 2)d"
sleep 5


و دیگری هم با نام test1.sh با محتویات زیر:
#!/bin/bash

 gnome-terminal  --  /home/a/Documents/test.sh 

با RUN کردن فایل test1.sh ، در حقیقت اسکریپت فایل test.sh اجرا می شود.
۱-چکار کنم تا بجای این دو تا فایل ،تنهایک فایل داشته باشم ، که شامل محتویات این دو تا فایل باشد.
یعنی آن فایل را اجرا کنم ، اسکریپت داخل خود آن فایل اجرا بشود نه اسکریپت داخل فایل دیگر.
معمولا در اسکریپت نویسی از یک فایل استفاده می کنند و یا اینکه چندین فایل هستند که یکی از آنها فقط RUN می کند؟

۲-وقتی این برنامه اجرا می شود یک پنجره ای خالی باز می شود که اسکریپت مربوطه در آن اجرا می شود و سپس خودبه خود بسته می شود، می خواستمم بدانم این پنجره خالی ( عکس 1) چیست و تفاوت آن با پنجره ای که حاوی نام کامپیوتر وغیره است ( مثلا در اینجا هست : " a@a-H61H2-M13:~/Documents$ ") در چیست؟( عکس 2)
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 23 خرداد 1401، 11:11 ق‌ظ
باز هم میگم ، اون مکث اولیه لازم نیست ، این سیستم عامل رو دست کم گرفتین : )
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 23 خرداد 1401، 09:35 ب‌ظ
باز هم میگم ، اون مکث اولیه لازم نیست ، این سیستم عامل رو دست کم گرفتین : )

آقای Sudo ، پیش داوری نکردم و چیزی را که فرمودید ، امتحان کردم.
اون مکث اولیه را حذف کردم.( عکس ۱)
البته  از برنامه Startup Applications استفاده کردم و فایل  اسکریپت مربوطه را به آن معرفی کردم تا در هنگام لاگین کاربر به صورت اتومات اجرا شود.
الان در کل سیستمم فقط یک لینوکس مینت نصب است.سیستم را خاموش کردم و دوباره با فشردن کلید پاور روشن کردم.
از فشردن کلید پاور تا نمایش صفحه مربوط به انتخاب کاربرها: ۵۲ ثانیه
از صفحه کاربرها  تا نمایش دسکتاب کاربر(محیط کاری کاربر): ۱۶ ثانیه

نتیجه این شد که این وقفه ۱۶ ثانیه (تصویر سیاه) تا نمایش دسکتاب کاربر ، باعث شد که سه حرف " Hel " از واژه "Hello" بدون آنکه من شاهد آن باشم در زمانیکه تصویر سیاه بود در ترمینالی که باز شده بود تایپ شده بود و من تنها شاهد تایپ "lo World" بودم.
اگر در این مورد مطلبی داشتید بفرمایید.(عکس 2)
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 23 خرداد 1401، 09:38 ب‌ظ
عجیبه ! نمی‌دونم والا ، برای من تا وقتی دسکتاپ کاملا بالا نیومده ترمینال رو اجرا نمیکنه ! شاید مشکل از سینامونه : )
( میتونم بپرسم چرا زرد ؟ چشمتونو اذیت نمیکنه ؟ )
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 23 خرداد 1401، 10:12 ب‌ظ
( میتونم بپرسم چرا زرد ؟ چشمتونو اذیت نمیکنه ؟ )

برای تست این اسکریپت بهتر بود اینکار را انجام بدهم.( عکس های 1 و 2 )

ویرایش: الان که عکسها را آپلود کردم ، کیفیت رنگ فونت ها در هر دو تصویری که در خود سایت ابونتو می بینم یکی است .
 ولی  بر روی سیستم خودم با نرم افزار Xviewer که در محیط کاری خودم به عکس ها نگاه می کنم قضیه کاملا برعکس است ، رنگها خیلی فرق می کنند ، پس زمینه عکس 1 ، خیلی سیاهتر است و کیفیت رنگ فونت ها در عکس 1 به نسبت عکسی که در سایت ابونتو می بینم دارای کیفیت خیلی پایین تری می باشد!!
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 24 خرداد 1401، 11:52 ق‌ظ
( میتونم بپرسم چرا زرد ؟ چشمتونو اذیت نمیکنه ؟ )
یک image viewer دیگری نصب کردم ومشکل درست نشان ندادن رنگ ها برایم حل شد.( در Xviewer ، نمایشگر تصویر پیش فرض لینوکس مینت برایم درست نشان نمی داد)
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: سودو. در 24 خرداد 1401، 12:16 ب‌ظ
خب خوبه ، چون زرد رنگ مناسبی نیست برای صفحه ای ک قراره مدتی بهش خیره بشی !
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 24 خرداد 1401، 04:11 ب‌ظ
ممنون، درست اجرا می شود.
 چرا در دستوری که دادید بجای " gnome-terminal " نمی توان " usr/bin/x-terminal-emulator/  " را بکار برد؟
( اگر توزیع دیگری داشتم که ترمینال پیش فرض آن ترمینال گنوم نبود ، بایستی این فرمان تغییر بیابد ، می خواستم یک جمله عمومی بنویسم که بدون تغییر در تمامی توزیع ها بکار برود.)

بلاخره با آزمون و خطا توانستم این قضیه را حل بکنم و نتیجه را برای استفاده دوستان اینجا قرار می دهم.
شما اسکریپتی را دارید و می خواهید در ترمینال اجرا بشود ، با توجه به ترمینال پیش فرض سیستمتان و یا ترمینالی که بعدا خودتان نصب کرده اید می توانید ، نام ترمینال را در دستور مربوطه برای اجرای اسکریپت بکار ببرید، مثلا برای اجرای اسکریپت موردنظر من با استفاده از ترمینال گنوم این دستور را بکار می بریم(این دستور را آقای Dragon- لطف کردند و در اختیارم قرار دادند.):

gnome-terminal  --  /home/a/Documents/test.sh
یا مثلا شاید دوست داشته باشید بجای اجرا در ترمینال گنوم از ترمینال xfce استفاده نمایید، دستور این می شود:

xfce4-terminal  --  /home/a/Documents/test.sh
ولی در هر توزیع یا میزکاری ، معمولا یک ترمینال بعنوان ترمینال پیش فرض مشخص می شود ، مثلا اگر شما Kubuntu نصب کرده باشید در آنجا خبری از ترمینال گنوم نیست و ترمینال konsole به صورت پیش فرض نصب است و یا اگر از Xubuntu استفاده نمایید ترمینالی که نصب است xfce4-terminal می باشد.
در هر توزیع با ترمینال متفاوت شما بایستی این دستور را بنام ترمینالتان تغییر بدهید.


ولی  برای راحتی کار و اینکه در تمامی توزیع ها با ترمینال های متفاوت حالا می توانید بجای دستورات بالا از یکی از دو دستور زیر استفاده نمایید تا اینکه اسکریپت موردنظرتان در ترمینال پیش فرض سیستمتان اجرا بشود و دیگر لزومی به استفاده از نام اختصاصی ترمینالتان نیست.( مگر اینکه خواسته باشید حتما در ترمینال دیگری که مد نظرتان است اسکریپت اجرا بشود که در این صورت بایستی در دستور نام ترمینالتان را وارد نمایید.):
مثلا:

x-terminal-emulator  -e  /home/a/Documents/test.sh
و یا

/usr/bin/x-terminal-emulator  -e  /home/a/Documents/test.sh
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 24 خرداد 1401، 10:12 ب‌ظ
در محیط ترمینال به آنچه که مد نظرم بود رسیدم( بغیر سایز فونت ) ، می خواستم اینبار این عمل را بجای ترمینال بر روی texteditor انجام بدهم.یعنی texteditor ای باز شود وبصورت اتومات بر روی آن نوشته هایی نوشته شود ،ولی هیچ ایده ای ندارم. اگر ایده ای یا نظری داشتید ، لطفا بفرمایید تا رویش کار بکنم.

و یک سوال دیگری هم که داشتم این بود که در قسمت پایینی ارسال (احتمالا قسمت امضا) ، بعضی از کاربرها نوشته های متحرکی بکار می برند.می خواستم بدانم این نوشته های متحرک چه چیزی هستند؟
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 27 خرداد 1401، 07:30 ب‌ظ
در محیط ترمینال به آنچه که مد نظرم بود رسیدم( بغیر سایز فونت ) ، می خواستم اینبار این عمل را بجای ترمینال بر روی texteditor انجام بدهم.یعنی texteditor ای باز شود وبصورت اتومات بر روی آن نوشته هایی نوشته شود ،ولی هیچ ایده ای ندارم. اگر ایده ای یا نظری داشتید ، لطفا بفرمایید تا رویش کار بکنم.

  اینبار می خواهیم ، در هنگام لاگین کاربر یک text editor گرافیکی باز بشود و مطلبی را به کاربر اعلام کند. مراحل کار را برای استفاده دوستان در اینجا قرار می دهم.
 اصلی ترین چالش در این مورد برایم ، auto refresh یا auto reload بود.
 در اینجا من از نرم افزار  ++Notepad استفاده می کنم.
 در مخازن دبیان و مینت ،خود پکیج  ++Notepad وجود ندارد و بناچار اگر بخواهیم از این نرم افزار بر روی سیستممان در لینوکس استفاده نماییم یکی از راههایش استفاده از snap می باشد.
(البته در مخازن مینت و Debian sid ، بجای ++Notepad ، بسته ای بنام Notepadqq ( Notepad++-like editor for Linux ) وجود دارد که تا جایی که من بررسی کردم نتوانستم گزینه ای درتنظیمات آن برای حالت auto refresh بیابم).
مراحل کار را در لینوکس مینت می گویم، در سایر توزیع ها خودتان می توانید مراحل کار را انجام دهید:

۱-چون لینوکس مینت بطور پیش فرض برخلاف ابونتو ، نصب بسته های snap را مسدود کرده ،با استفاده از فرمان های زیر، حالت لغو بسته های snap را از روی سیستممان بر میداریم:

sudo mv /etc/apt/preferences.d/nosnap.pref ~/Documents/nosnap.backup
sudo apt update
۲- نصب خود snap بر روی سیستم :

sudo apt install snapd
 ۳ -سیستمتان را restart نمایید.

 ۴-الان می توانید خود ++Notepad را نصب نمایید:

sudo snap install notepad-plus-plus
 ۵- حالا به مهمترین قسمت قضیه فعال کردن حالت auto refresh می پردازیم، نرم افزار ++Notepad را باز می کنیم و سپس :
 ( عکسهای 1 و 2 )
settings -> Preferences -> MISC. -> Update silently
 ۶- حالا  یک فایل می سازیم مثلا بنام  abc.sh با محتویات زیر، یادتان باشد که به این فایل خاصیت اجرایی بدهید. محتویات این فایل:

#!/bin/bash


touch /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt &

sleep 4
echo "H" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 2
echo "He" > /home/a/Desktop/test.txt 
notepad-plus-plus  /home/a/Desktop/test.txt 

sleep 1
echo "Hel" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
echo "Hell" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
echo "Hello" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
echo "Hello-" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
echo "Hello " > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
echo "Hello W" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
echo "Hello Wo" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
echo "Hello Wor" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
echo "Hello Worl" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
echo "Hello World" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 3
echo "" > /home/a/Desktop/test.txt
notepad-plus-plus  /home/a/Desktop/test.txt

sleep 1
rm  -f /home/a/Desktop/test.txt


 ۷-در این قسمت می رویم سراغ برنامه startup Application و فایلی را که ساخته ایم را به این برنامه معرفی می کنیم تا در هنگام لاگین کاربر اجرا گردد.


 ۸- در عکس 3 ، قسمتی از اجرای این اسکریپت را می توانید ببینید، البته من در اواخر این اسکریپت چنان تنظیم کرده ام که بعد از تکمیل نوشته ، بعد از کمی مکث نوشته کلا پاک شود و سپس فایل متنی ایجاد شده بصورت اتوماتیک حذف شود، ولی بهر حال بایستی بصورت دستی پنجره  ++Notepad را ببندید.
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات
ارسال شده توسط: norouzi90 در 27 خرداد 1401، 07:36 ب‌ظ
با سپاس فراوان از ㅤSudo، Dragon، esmaeelE ، Argon ،Dr.Code
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات (حل شد)
ارسال شده توسط: سودو. در 27 خرداد 1401، 07:45 ب‌ظ
مطمئن باش نود درصد دوستان این انجمن ، اسنپ نصب بکن نیستن ، دست کم تا جایی که من اطلاع دارم : )
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات (حل شد)
ارسال شده توسط: norouzi90 در 02 تیر 1401، 11:30 ب‌ظ
آقای Sudo ،شاید شما و سایر دوستان این راهکاری را که در بالا نوشته ام اصلا نخوانید یا نصف و نیمه بخوانید و شاید هم با دیدن  واژه snap از خیر موضوع بگذرید. بنظر شاید موضوع بی اهمیتی باشد که بر روی آن وقت گذاشته ام و بی اهمیت تر از آن شاید جوابی که پیدا کرده ام.
چندین text editor گرافیکی را یر روی سیستمم نصب و منوهایشان را جستجو کردم تا شاید در این رابطه بدردم بخورد ولی من چیزی نتوانستم که در این رابطه بدردم بخورد پیدا کنم ، مواردی بود که نیازمند کلیک کاربر بدفعات بود و این چیزی نبود که من خواهان آن باشم. تنها چیزی که در این رابطه پیدا کردم و می توانست بدردم بخورد ، همانی بود که در بالا به آن اشاره کردم.
واقعیت این است که با این ارسالی شما کمی آزرده خاطر شدم( از شما در اصل تشکر می کنم ، حداقل یک سری زدید) ، چرا که بر روی راهکار بالا ساعتها وقت گذاشته بودم و خودم در فشار بودم که جوابی برای این سوال برای خودم پیدا کنم. فرض کنید که یک نفر پیدا شود و بگوید :همان چیزی که شما در بالا گفتید.
البته از این سخن شما تشکر می کنم ، چون باعث شد ذهنم تا حد زیادی نسبت به یک قضیه باز شود.
روال کاریمان در این انجمن چیه: snap: این چیه زود حذفش کن! systemd : گند زد به گنو/لینوکس! ویندوز: حرفش را هم نزن! و...
ولی این را فهمیدم همانطور که من بر روی چیزی که برای خودم ارزشمند بوده و برایش زحمت ( در حد توان خودم) کشیدم ، سایر موارد هم مانند snap ,systemd و...برای سازندگان و توسعه دهندگان آنها بنا به علایق و سلایق متفاوتی که داریم ارزشمند می باشد، که بر روی آن زحمت می کشند.
و این درست نیست بر بالش راحتی لم بدهیم و بر روی زحمات دیگران به دیده حقارت بنگریم.
مهمترین چیز اینه که در کنار هم به علایق هم احترام بگذاریم .
عنوان: پاسخ : تایپ یک کلمه بصورت اتومات (حل شد)
ارسال شده توسط: سودو. در 02 تیر 1401، 11:38 ب‌ظ
بشدت بد برداشت کردی دوست من ، بشدت ، صد و هشتاد درجه : )