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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: اجرای دستور asciinema rec هر بار که یه ترمینال اجرا شد (حل شد)  (دفعات بازدید: 1211 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
سلام
من میخوام رو یه ماشین مجازیم که بهش ssh میکنم هر وقت یه ترمینال باز شد یا ssh شد (در واقع هروقت بش اجرا شد) این دستور اجرا شه و رکورد شروع شه!
وقتی که تو bashrc میزارمش هر وقت یه bash اجرا میشه یه لوپ بینهایت درست میشه که همش رکورد کردن رو شروع میکنه! که دلیل منطقی ای هم داره! چون هر بار یه bash اجرا میشه دیگه بعد از شروع رکورد! چطور میتونم این مشکل رو حل کنم؟
« آخرین ویرایش: 01 تیر 1401، 04:43 ب‌ظ توسط ɴɪᴍᴀꜰᴀɴɴɪᴀꜱʟ »

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
لطفا زودتر جواب بدید. ممنونم
« آخرین ویرایش: 30 خرداد 1401، 06:14 ب‌ظ توسط ɴɪᴍᴀꜰᴀɴɴɪᴀꜱʟ »

آفلاین سودو.

  • High Hero Member
  • *
  • ارسال: 3095
  • جنسیت : پسر
  • :(){ :|:& };:
ببین نیما من از ssh سر در نمیارم و اون ابزارم که گفتی دقیقا نفهمیدم چیکار میکنه ، فقط فهمیدم که میخوای وقتی وصل شدی به سیستمت ، تنها بار اول یه ابزاری اجرا شه و نه هر بار که بش اجرا میشه ، خب میتونی بگی دفعه اول یه فایل توی /tmp بسازه و هر بار ک دوباره اجرا میشه فقط بررسی کنه اگه اون فایل نبود اجرا کنه ابزارتو ، که یعنی وقتی باشه اون فایل یعنی اجرا شده دیگه ، وقتی خواستی ابزارت متوقف شه کارش ، یه الیاس داشته باش که پاک کنه اون فایلو و ابزارتم متوقف کنه : )
آرچ و گنوم!

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
درسته :)
این ابزار از دستور هایی که میزنم فیلم میگیره و چیز باحالیه! برای همین میخوام که هم بشی که باز شد این اجرا شه تا از دستوراتی که توش اجرا میشه فیلم گرفنه شه!

آفلاین سودو.

  • High Hero Member
  • *
  • ارسال: 3095
  • جنسیت : پسر
  • :(){ :|:& };:
حل میشه پس با این ترفند ؟ اگه میشه پس ( حل شد ) یادت نره : )
آرچ و گنوم!

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
نه حل نمیشه متاسفانه!

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
می‌تونید توی فایل bashrc. تنظیم کنید که یه بررسی انجام بشه که یه متغییر تعریف شده یا نه.
اگه تعریف نشده بود، اون رو تعریف و export کنه. بعد هم asciinema اجرا بشه.
اگه اون متغیر تعریف شده بود، asciinema اجرا نشه.
این رو ببینید:
if [ ! -v _BASHRC_IS_SOURCED ]; then
    _BASHRC_IS_SOURCED=1
    export _BASHRC_IS_SOURCED
other commands
fi
مهم نیست که مقدار متغیر محیطی BASHRC_IS_SOURCED_ چی باشه. حتی می‌تونید به اون مقداری ندید. فقط مهمه که تعریف و export شده باشه.
export برای این لازم هست تا پوسته‌هایی که توسط این پوسته اجرا میشن، همچنان متغیر BASHRC_IS_SOURCED_ رو ببینند.

به جای other commands هم بقیه چیز‌هایی که می‌خواهید رو بنویسید.

اگه به هر دلیلی متغیر BASHRC_IS_SOURCED_ تعریف شده باشه و bash اجرا بشه، اون چیز‌هایی که توی بلوک if مربوط قرار دارند اجرا نمیشن.
میدونید که زکات علم نشر آن است

آفلاین سودو.

  • High Hero Member
  • *
  • ارسال: 3095
  • جنسیت : پسر
  • :(){ :|:& };:
خب این با اون فایل هم میشد نه ؟
آرچ و گنوم!

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
مهم نیست که مقدار متغیر محیطی BASHRC_IS_SOURCED_ چی باشه. حتی می‌تونید به اون مقداری ندید. فقط مهمه که تعریف و export شده باشه.
export برای این لازم هست تا پوسته‌هایی که توسط این پوسته اجرا میشن، همچنان متغیر BASHRC_IS_SOURCED_ رو ببینند.

به جای other commands هم بقیه چیز‌هایی که می‌خواهید رو بنویسید.

اگه به هر دلیلی متغیر BASHRC_IS_SOURCED_ تعریف شده باشه و bash اجرا بشه، اون چیز‌هایی که توی بلوک if مربوط قرار دارند اجرا نمیشن.

ممنونم،
انجام شد، ولی این مشکل رو دارم:
asciinema needs an ASCII or UTF-8 character encoding to run. Check the output of `locale` command.یه کاربر جدید ساختم، میخوام صبط شه ولی این ارور رو میده!

user:~$ locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=POSIX

#  File generated by update-locale
LANG=en_IN.UTF-8
LC_NUMERIC="az_IR"
LC_TIME="az_IR"
LC_MONETARY="az_IR"
LC_PAPER="az_IR"
LC_NAME="az_IR"
LC_ADDRESS="az_IR"
LC_TELEPHONE="az_IR"
LC_MEASUREMENT="az_IR"
LC_IDENTIFICATION="az_IR"

خب این با اون فایل هم میشد نه ؟
نه، چون وقنی یه فایل باشه دیگه هیچ کدوم از شل های دیگه ضبط نمیشن! ولی متغیر برای یه شله!
ممنونم

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
راهی نیست؟

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
خب این با اون فایل هم میشد نه ؟
با ایجاد فایل هم میشده اینکار رو کرد. دقیقا نمی‌دونم چیکار کردند که نشده.
ممنونم،
انجام شد، ولی این مشکل رو دارم:
asciinema needs an ASCII or UTF-8 character encoding to run. Check the output of `locale` command.یه کاربر جدید ساختم، میخوام صبط شه ولی این ارور رو میده!
...
چه توزیعی دارید؟
میدونید که زکات علم نشر آن است

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
اوبونتو تو ماشین مجازی

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
یکم عجیبه. اوبونتو سرور نصب کردید؟

بسته locales رو دوباره پیکربندی کنید. توی مراحل پیکربندی، یه encoding که utf8 باشه انتخاب کنید. مثلا en_US.UTF-8 یا fa_IR.UTF-8
با دستور dpkg-reconfigure می‌تونید یه بسته رو توی دبیان و توزیع‌های مبتنی بر اون، دوباره پیکربندی کنید.
sudo dpkg-reconfigure locales
میدونید که زکات علم نشر آن است

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
این کار هارو کردم و درست نشد
نه اوبونتو دسکتاپ

آفلاین ɴɪᴍᴀ

  • High Hero Member
  • *
  • ارسال: 1270
  • جنسیت : پسر
  • یه برنامه نویس 13 ساله :)
    • smartnima Website
اینم bashrc:
هنوز قطعی نیستا!  ;D
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/usr/bin
if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
PATH=$LFS/tools/bin:$PATH
CONFIG_SITE=$LFS/usr/share/config.site
export LFS LC_ALL LFS_TGT PATH CONFIG_SITE