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

کمک و پشتیبانی => انجمن عمومی => نویسنده: pronetin در 17 مهر 1389، 06:55 ب‌ظ

عنوان: نوشتن کاراکتر ها و عبارات خاص در فایل بوسیله script
ارسال شده توسط: pronetin در 17 مهر 1389، 06:55 ب‌ظ
سلام

من می خوام در یک فایل عبارت هایی مثل (`pwd`) را بنویسم. هدفم از این کار ایجاد یک script پویا است. از دستور زیر استفاده کردم ولی به جای نوشتن عبارت خروجی دستور pwd را می نویسد:
printf "\t%s\n" "curDir=(`pwd`)" >> ./myfileهم چنین می خوام در آن فایل عبارتی مثل $curDir را بنویسم ولی به جای این کار مقدار متغیر curDir را در فایل می نویسد. فکر می کنم با علامت $ مشکل دارد. دستور زیر را نوشتم که نشد:
printf "\t%s\n" "cd \"$curDir\"" >> ./myfile
عنوان: پاسخ به: نوشتن کاراکتر ها و عبارات خاص در فایل بوسیله script
ارسال شده توسط: جادی در 18 مهر 1389، 10:15 ق‌ظ
به چه زبونی؟ سی؟ سوال کامل و دقیق جواب درست می یاره و البته اگر سوالت سی است، پیشنهاد می کنم اول یک کتاب برنامه نویسی سی رو دقیق بخونی (: کلا در اکثر زبان ها برای اشاره به خود کاراکترهای خاص، یا \ قبلش می ذارن. مثلا $\ می شه «خود علامت دلار».
عنوان: پاسخ به: نوشتن کاراکتر ها و عبارات خاص در فایل بوسیله script
ارسال شده توسط: pronetin در 19 مهر 1389، 11:59 ق‌ظ
زبان سی را بلدم ولی bash را در سطح مقدماتی. می دانم که در سی اگر \ را قبل از کاراکترهای خاص بگذاریم، به چه معناست. اگر دستور دومی که در پست گذاشتم را نگاه کنید می بینید که از \ قبل از " استفاده کرده ام تا در خروجی و در فایل کاراکتر " قرار گیرد.
نقل‌قول
به چه زبونی؟
زبان .bash در سوال هم نوشته بودم که منظورم چیست. شاید نامفهوم بوده است. :?:

مشکلم حل شد.

printf "\t%s\n" "curDir=(\`"pwd"\`)" >> ./filename
printf "\t%s\n" "cd \"\$curDir\"" >> ./filename

مشکل دستور اول کاراکتر ` بود که باعث اجرا شدن عبارت بعد یعنی pwd می شد. pwd هم باید در داخل "" قرار می گرفت تا ` بر روی آن اثر نگذارد.

مشکل دستور دوم هم $ بود که باید قبل از آن \ قرار می گرفت.

به هر حال متشکرم.