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

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

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


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: set echo  (دفعات بازدید: 829 بار)

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

آفلاین mohammad2003

  • Newbie
  • *
  • ارسال: 19
set echo
« : 30 خرداد 1395، 03:08 ب‌ظ »
با سلام
من تازه کار هستم می خواستم بدونم دستور set echo چه کاربردی دارد؟
با جستجو در گوگل به نتیجه نرسیدم

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پاسخ : set echo
« پاسخ #1 : 30 خرداد 1395، 03:50 ب‌ظ »
« آخرین ویرایش: 30 خرداد 1395، 03:53 ب‌ظ توسط 藤沼 »

آفلاین mohammad2003

  • Newbie
  • *
  • ارسال: 19
پاسخ : set echo
« پاسخ #2 : 30 خرداد 1395، 03:58 ب‌ظ »
با تشکر ولی نامفهوم بود

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پاسخ : set echo
« پاسخ #3 : 30 خرداد 1395، 04:02 ب‌ظ »
این‌ها نامفهوم‌اند؟

نقل‌قول

verbose
    If set, causes the words of each command to be printed, after history substitution (if any). Set by the -v command line option.

echo
    If set, each command with its arguments is echoed just before it is executed. For non-builtin commands all expansions occur before echoing. Builtin commands are echoed before command and filename substitution, because these substitutions are then done selectively. Set by the -x command line option.


آفلاین mohammad2003

  • Newbie
  • *
  • ارسال: 19
پاسخ : set echo
« پاسخ #4 : 30 خرداد 1395، 04:10 ب‌ظ »
به فارسی می شه توضیح بدی به طور مختصر

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پاسخ : set echo
« پاسخ #5 : 30 خرداد 1395، 05:20 ب‌ظ »
قبل از اینکه هر دستوری ارزیابی (evaluate) بشه کل دستور همراه آرگومان‌های اون در خروجی چاپ می‌شه. برای مثال؛ اسکریپت زیر رو با دستور ‌bash -x اجرا کنید. البته شما باید دست‌نامهٔ (manual) پوستهٔ tsh رو بخونید هرچند توضیحی که نوشتم شامل همهٔ پوسته‌ها می‌شه فقط احتمالاً پرچم‌ها متفاوت‌‌اند:
#!/usr/bin/env bash
# filename: foo.sh
prinft "%s\n" "$HOME"

خروجی چیزی شبیه یا مثل زیر خواهد بود:
> bash -x foo.sh
+ printf '%s\n' /home/john
/home/john
« آخرین ویرایش: 30 خرداد 1395، 06:48 ب‌ظ توسط 藤沼 »

آفلاین mohammad2003

  • Newbie
  • *
  • ارسال: 19
پاسخ : set echo
« پاسخ #6 : 30 خرداد 1395، 06:35 ب‌ظ »
با سلام
ببخشید اینجا چه ارتباطی به set echo داشت

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پاسخ : set echo
« پاسخ #7 : 30 خرداد 1395، 06:45 ب‌ظ »
قبل از اینکه هر دستوری ارزیابی (evaluate) بشه کل دستور همراه آرگومان‌های اون در خروجی چاپ می‌شه.
set echo همون کاری رو که من در پوستهٔ bash با پرچم x- انجام دادم می‌کنه :|

آفلاین mohammad2003

  • Newbie
  • *
  • ارسال: 19
پاسخ : set echo
« پاسخ #8 : 30 خرداد 1395، 07:19 ب‌ظ »
در اسکریپت زیر نقش set echo چیه؟
#!/bin/csh
#
set echo
cd $cwd
#
# --- Usage:  ./Make.com >& Make.log
#
# --- make hycom with TYPE from this directory's name (src_*_$TYPE).
# --- assumes dimensions.h is correct for $TYPE.
#
# --- set ARCH to the correct value for this machine.
# --- ARCH that start with A are for ARCTIC patch regions
#
#setenv ARCH alphaL
#setenv ARCH alpha
#setenv ARCH amd64
#setenv ARCH ia64-mpi2io
#setenv ARCH intel
#setenv ARCH o2k
#setenv ARCH sp3
#setenv ARCH sp4
#setenv ARCH sp5
#setenv ARCH sp6-nofl
#setenv ARCH sun64
#setenv ARCH sun
#setenv ARCH t3e
#setenv ARCH xt3-mpi2io
#setenv ARCH xt4
#setenv ARCH xt5
#
setenv ARCH gfortran

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پاسخ : set echo
« پاسخ #9 : 30 خرداد 1395، 08:52 ب‌ظ »
یکبار توضیح دادم. اگر دقت کنید و دلیل استفاده از set echo رو درک کنید کاربرد اون در هر اسکریپت فرقی با دیگری نمی‌کنه. عنوان موضوع رو هم بازنویسی کنید و هدف پرسش رو تعریف کنید.
«آرگومان echo دستور set در پوستهٔ csh چه کار می‌کند؟»

آفلاین B

  • Sr. Member
  • *
  • ارسال: 354
  • جنسیت : پسر
پاسخ : set echo
« پاسخ #10 : 31 خرداد 1395، 11:13 ق‌ظ »
راستش من هم متوجه نشدم چکار میکنه!!!

میگم چه بهتره حالا که وقت میذارید و لطف میکنید توضیح میدین؛ یکم با حوصله تر جواب بدید که همگان متوجه بشند خیلی خوب میشه

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : set echo
« پاسخ #11 : 31 خرداد 1395، 12:06 ب‌ظ »
این دستور به درد debug کردن اسکریپت در هنگام نوشتنش میخوره و باعث میشه یه trace ازش تو خروجی چاپ بشه.

فرضا مینویسیم:
set echo
a="salam"
b="$a donya"
echo $b

حالا وقتی اسکریپت رو اجرا کنید قبل از خروجی نهایی خط به خط trace و تو خروجی چاپ میشه به این شکل:
+ a=salam
+ b='salam donya'
+ echo salam donya

اگر خط دوم رو نگاه کنید متوجه میشید به جای a سلام رو جایگزین کرده و در خط سوم به جای b مقدار نهایی b یعنی salam donya رو جایگزین کرده. در واقع میتونید ببینید در هر خط چه اتفاقی افتاده و خطای احتمالی رو تشخیص داده و رفع کنید.


http://faculty.plattsburgh.edu/jan.plaza/computing/help/tcsh.htm
« آخرین ویرایش: 31 خرداد 1395، 12:10 ب‌ظ توسط M!lad »
..I feel no fault for the fault I feel..

آفلاین B

  • Sr. Member
  • *
  • ارسال: 354
  • جنسیت : پسر
پاسخ : set echo
« پاسخ #12 : 31 خرداد 1395، 03:10 ب‌ظ »
الان مشکل من کجاست که چنین چیزی واسه من نمایش داده نمیشه؟
عکس پسوست شده

آفلاین M!lad

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1757
پاسخ : set echo
« پاسخ #13 : 31 خرداد 1395، 03:27 ب‌ظ »
set echo برای csh و tcsh هست نه برای bash، تو bash باید بزنید bash -x script_name و نیازی به گذاشتن set echo تو اسکریپت هم نیست.
« آخرین ویرایش: 31 خرداد 1395، 03:28 ب‌ظ توسط M!lad »
..I feel no fault for the fault I feel..