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

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

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

نویسنده موضوع: کد نویسی در ترمینال  (دفعات بازدید: 3461 بار)

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

آفلاین aleas

  • Jr. Member
  • *
  • ارسال: 25
  • جنسیت : پسر
کد نویسی در ترمینال
« : 04 تیر 1391، 10:29 ب‌ظ »
سلام خسته نباشید کسی جواب این سوال میدونه
چگونه میتوان در محیط کدنویسی ترمینال لینوکس متغییری از حالت
readonly
خارج کرد و حذف کرد؟

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : کد نویسی در ترمینال
« پاسخ #1 : 05 تیر 1391، 01:44 ق‌ظ »
سلام. به دنیای آزاد خوش اومدی
مگه متغیر READONLY می شه؟ ???
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین aleas

  • Jr. Member
  • *
  • ارسال: 25
  • جنسیت : پسر
پاسخ : کد نویسی در ترمینال
« پاسخ #2 : 05 تیر 1391، 09:28 ق‌ظ »
ممنون مرسی
بله مثلا در محیط shell script  وقتی یک متغییر محلی تعریف میکنی بطور مثال
a=ali
با دستور unset میتونی متغییر حذف کنی
ولی وقتی متغییر محلی رو به متغییر read-only تبدیل میکنی امکان حذف با این دستور وجود نداره حالا من میخوام بدونم چطور میتونم این متغییر به متغییر محلی برگردونم و حذفش کنم؟

و چطور مستقیم میشه این متغییر حذف کرد

آفلاین آیدین

  • Hero Member
  • *
  • ارسال: 733
  • جنسیت : پسر
  • Die it such FRIENDLY word for me
پاسخ : کد نویسی در ترمینال
« پاسخ #3 : 05 تیر 1391، 10:46 ق‌ظ »
اینجوری که من متوجه شدم به نظرم شما منظورتون alias هست ، با این دستور میتونی برای یه دستور تووی ترمینال یه اسم در نظر بگیری و با دستور unalias اون رو حذف کنی !

برای اطلاعات بیشتر تووی ترمینال بزن man alias

یا به این لینک مراجعه کن :
http://ss64.com/bash/alias.html
من از سرزمین آه آمده ام! سرزمین اندوه های بسیار! از جایی که هیچگاه نخندیده ام!!
من زاده ی‌ سرزمین آه هستم. من از سرزمین شرم آمدم،
از سرزمین حیا‌های بی‌ خاصیت، سرزمین قایم شدن‌های پر قیمت،
من از سرزمین حصار‌های بی‌ منفعت آمده ام !! من از سرزمین پنهان شدن آمده ام
من به رسم آهیان ، همچنان می‌‌آیم!!

آفلاین mohsen-rashidi

  • High Sr. Member
  • *
  • ارسال: 646
  • جنسیت : پسر
  • Hacker`s Emblem
    • اینجا خانه محسن است
پاسخ : کد نویسی در ترمینال
« پاسخ #4 : 05 تیر 1391، 10:55 ق‌ظ »
برای ساختن alias از فرمول زیر استفاده کن:

alias command name='command1;command2;command3;....'

آفلاین aleas

  • Jr. Member
  • *
  • ارسال: 25
  • جنسیت : پسر
پاسخ : کد نویسی در ترمینال
« پاسخ #5 : 05 تیر 1391، 11:11 ق‌ظ »
نه بابا این که ارایه است یعنی کسی نمیدونه readonly جی؟

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319

آفلاین aleas

  • Jr. Member
  • *
  • ارسال: 25
  • جنسیت : پسر
پاسخ : کد نویسی در ترمینال
« پاسخ #7 : 05 تیر 1391، 11:35 ق‌ظ »
بله منظورم همینه با دستور unset نمیشه حذف کرد خطا میده چطور باید به متغییر محلی برگردونم و حذفش کنم چون انگلیسیم خوب نیست از این سایت درست سر در نیودم

خب بجز روش حذف کردن یه روش بگین که متغیر از حالت readonly به حالت قبل که محلی برگردونه فقط به حالت محلی برگردونه حذفش نکنه
« آخرین ویرایش: 05 تیر 1391، 11:47 ق‌ظ توسط aleas »

آفلاین aleas

  • Jr. Member
  • *
  • ارسال: 25
  • جنسیت : پسر
پاسخ : کد نویسی در ترمینال
« پاسخ #8 : 05 تیر 1391، 02:23 ب‌ظ »
دوستان هر کار کردم نشد ببینین خودتون این کارایی میگم بکنین متوجه منظورم میشین تو محیط ترمینال اینارو بنویسین یک

a=ali
echo $a
a=ali2
echo $a
unset a
echo $a


این کد دیدین؟unset چطور متغییر حذف کرد؟حالا این کد انجام بدین

a=ali
echo $a
readonly a
a=ali2
echo $a
unset $a
echo $a



میبینین روش اول میشه مقدار متغییر عوض کرد و حتی متغییر عوض کرد ولی روش دوم مقدار متغییر دگه تغییر نمیکنه و حتی حذف هم نمیشه

من میخواستم بدونم تو روش دوم چطور باید متغییر حذف کنم خواهشا یه نفر راهنمایی کنه؟
تو اون سایت هایی هم دادین هر کار کردم نشد چکار کنم؟

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319
پاسخ : کد نویسی در ترمینال
« پاسخ #9 : 05 تیر 1391، 02:30 ب‌ظ »
می گه زمانی که متغیر به صورت readonly در می آید نمی تواند unset شود.
بهترین راه kill کردن shell است یا اجرای دستور در subshell، مثل:
{(b=8; readonly b; echo "-$b-"); b=90; echo "[$b]"; unset b; echo "[[$b]]";}

آفلاین alend

  • High Hero Member
  • *
  • ارسال: 1319
پاسخ : کد نویسی در ترمینال
« پاسخ #10 : 05 تیر 1391، 03:51 ب‌ظ »
سلام. به دنیای آزاد خوش اومدی
مگه متغیر READONLY می شه؟ ???
پس const چیه!

آفلاین aleas

  • Jr. Member
  • *
  • ارسال: 25
  • جنسیت : پسر
پاسخ : کد نویسی در ترمینال
« پاسخ #11 : 05 تیر 1391، 05:06 ب‌ظ »
سلام یعنی هیچ راه حلی نیست فقط متغییر بشه حذف کرد؟
خب میشه بگین چطور میشه shell را kill کرد؟
یا کد زیر در subshell وارد کنم اصلا subshell چی؟بنده تازه وارد هستم اگر امکان داره توضیحات بیشتری بدین ممنون میشم چون تازه وارد هستم همینطور توضیح بدین چرا متغییر به readonly تبدیل میکنی هیچ راهی برای حذف کردن متغییر وجود نداره؟و چرا با این دو روشی گفتین میشه حذف کرد؟
{(b=8; readonly b; echo "-$b-"); b=90; echo "[$b]"; unset b; echo "[[$b]]";}

آفلاین aleas

  • Jr. Member
  • *
  • ارسال: 25
  • جنسیت : پسر
پاسخ : کد نویسی در ترمینال
« پاسخ #12 : 05 تیر 1391، 05:16 ب‌ظ »
شما مطمن هستین هیچ راهی وجود نداره؟

آفلاین aleas

  • Jr. Member
  • *
  • ارسال: 25
  • جنسیت : پسر
پاسخ : کد نویسی در ترمینال
« پاسخ #13 : 05 تیر 1391، 07:00 ب‌ظ »
دوست عزیز متوجه منظورتون شدم منظورتون همون اسکریپت بود ولی این کدی شما دادین اصلا ربطی به readonly نداره بطور مثال شما اینو انجام بدین

(a=10
echo $a)
echo $a
a=20
echo $a
unset a
echo $a

باید خروجی به این شکل باشه
10
10
20
-
ولی به این صورته
10
-
20
-

پس در نیجه ما وقتی این دستور که شما گفتین مینویسیم
(a=10
readonly a
echo $a)
echo $a
a=20
echo $a
unset a
echo $a
در نتیجه اینی شما دادین فقط اون دو خط اول که داخل پرانتز هسته یه کد نویسی جدا حساب میشه چون که بعد پرانتز میبینی مقدار a=10 هسته ولی ما میزنیم a نمایش بده میگه a مقداری نداره یعنی کد نویسی داخل پرانتز جدا حساب میشن من میخوام خود
readonly رو حذف کنم

آفلاین aleas

  • Jr. Member
  • *
  • ارسال: 25
  • جنسیت : پسر
پاسخ : کد نویسی در ترمینال
« پاسخ #14 : 07 تیر 1391، 09:24 ق‌ظ »
دوستان هنوز منتظر جوابم این متغییر نمیشه که کلا نشه حذف کرد بلخره یه راه وجود داره راهنمایی کنین لطفا