جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
محتوای باز
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]
  • خانه
  • کتاب آنلاین
  • درباره سایت
  • درباره لوگو
  • تماس با ما
محتوای باز
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0
[wcas-search-form]

دابل کوتیشن (Double Quotes) در خط فرمان لینوکس

15 تیر 1399
ارسال شده توسط فرشید نوتاش حقیقت
خط فرمان، گنو/لینوکس
دابل کوتیشن

اولین نوع از Quoting که آن را بررسی می‌کنیم دابل کوتیشن می‌باشد. اگر متنی را در داخل دابل‌کوتیشن “” قرار دهیم، تمامی کاراکترهای ویژه‌ای که توسط Shell استفاده شده‌اند معنی ویژه خود را از دست می‌دهند و به‌عنوان کاراکترهای معمولی در نظر گرفته می‌شوند.

دابل کوتیشن (Double Quotes)

البته استثنائاتی وجود دارد، علامت دلار ($)، بک‌اسلش (\)، بک‌کوتیشن (`). این یعنی اینکه فاصله بین کلمات، بسط نام مسیر، بسط تیلدا و بسط بریس همگی سرکوب می‌شوند ولی هنوز بسط پارامتر، بسط حسابی و جایگزینی فرمان انجام می‌شود. با استفاده از دابل‌کوتیشن “” می‌توان با فاصله بین اسامی فایل مقابله کرد.

مثلاً مجبوریم با فایلی با نام two words.txt کار کنیم. اگر به صورت ساده از فرمان ls –l برای لیست فایل two words.txt استفاده کنیم، چه اتفاقی می‌افتد؟

عملکرد فاصله‌اندازی بین کلمات توسط Shell باعث می‌شود که نام فایل به‌عنوان دو آرگومان جداگانه در نظر گرفته شود و نتیجه دلخواه حاصل نشود:

[me@linuxbox ~]$ ls -l two words.txt
ls: cannot access two: No such file or directory
ls: cannot access words.txt: No such file or directory

ولی اگر نام فایل را داخل دابل کوتیشن قرار دهیم، با فاصله‌ای که بین کلمات نام آن قرار دارد در نظر گرفنه می‌شود نه به‌عنوان دو آرگومان جدا از هم. بنابراین نتیجه دلخواه حاصل می‌شود.

[me@linuxbox ~]$ ls -l "two words.txt"
-rw-rw-r-- 1 me me 18 2012-02-20 13:03 two words.txt
[me@linuxbox ~]$ mv "two words.txt" two_words.txt

همچنین می‌توان نام فایل را تغییر داد تا دیگر با چنین مشکلاتی مواجه نشد. به همین دلیل است که توصیه می‌شود از فاصله در نام فایل‌ها خودداری کنید و در صورتی که نیاز دارید نام دو یا چندکلمه‌ای استفاده کنید. مثلاً از علامت زیر خط (_) استفاده نمایید.

[me@linuxbox ~]$ echo "$USER $((2+2)) $(cal)"
me 4 February 2012
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29

بایستی بررسی کنیم که تاثیر دابل کوتیشن بر روی فرمان جایگزینی چیست. ابتدا ببینید که تقسیم کلمات (word splitting) چگونه کار می‌کند. در مثال قبلی دیدیم که word splitting چگونه فاصله اضافی موجود در متن ما را حذف کرد:

[me@linuxbox ~]$ echo this is a test
this is a test

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

[me@linuxbox ~]$ echo "this is a test"
this is a test

این واقعیت که خطوط جدید به‌عنوان جداکننده کلمات در نظر گرفته می‌شوند موجب یک تاثیر جالب در جانشینی می‌شود. موارد پایین را با هم مقایسه کنید:

[me@linuxbox ~]$ echo $(cal)
February 2012 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26 27 28 29
[me@linuxbox ~]$ echo "$(cal)"
February 2012
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29

در مثال اول فرمان جانشینی بدون دابل کوتیشن است که نتیجه آن یک خط شامل ۳۸ آرگومان می‌باشد. در نتیجه فاصله‌های موجود و خطوط جدید حذف شدند. اما در مثال دوم نتیجه یک خط فرمان با یک آرگومان است که شامل فاضاهای موجود در خطوط جدید است.

منبع: لینوکس‌سیزن نوشته فرشید نوتاش حقیقت

برچسب ها: CLICommand Lineخط فرمانخط فرمان لینوکس
درباره فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

نوشته‌های بیشتر از فرشید نوتاش حقیقت
قبلی کوتیشن‌گذاری (Quoting) در خط فرمان لینوکس
بعدی تک کوتیشن (Single Quotes) در خط فرمان لینوکس

دیدگاهتان را بنویسید لغو پاسخ

این سایت از اکیسمت برای کاهش جفنگ استفاده می‌کند. درباره چگونگی پردازش داده‌های دیدگاه خود بیشتر بدانید.

جستجو
جستجو برای:
دسته‌بندی موضوعی مقالات
  • برنامه‌نویسی
    • پایتون
    • دواپس
  • پایگاه‌داده
    • MariaDB
    • MySQL
  • تجارت الکترونیک
    • بازاریابی اینترنتی
    • دیجیتال مارکتینگ
    • شبکه‌های اجتماعی
  • جامعه کاربری
    • لاگ
  • دسته‌بندی نشده
  • شبکه و امنیت
  • طراحی وب
    • سئو
    • سیستم مدیریت محتوا
      • وردپرس
  • فناوری‌های نوظهور
    • اینترنت اشیاء
    • رایانش ابری
      • OpenStack
    • کلان‌داده‌ها
  • گنو/لینوکس
    • توزیع
      • CentOS
      • اوبونتو
      • دبیان
      • فدورا
    • چیست
    • خط فرمان
  • مهاجرت به آزاد/متن‌باز
  • نرم‌افزار
    • اداری
      • لیبره آفیس
        • ایمپرس
        • بیس
        • دراو
        • رایتر
        • کالک
    • کاربردی
    • گرافیک و انیمیشن
      • بلندر
      • گیمپ
نماد الکترونیکی (اینماد)
پرداخت‌یار

محتوای باز؛ مرجع آموزشی نرم‌افزارهای آزاد/ متن‌باز

از اینکه قصد همکاری با رسانه «محتوای باز» را دارید بسیار خرسندیم و این مایه مباهات ماست.

نحوه همکاری با ما چندان پیچیده نیست و شرایط آن در ادامه، ارائه گردیده است.

دستمزد مدرسین

پیش از بیان شرایط ضبط ویدئو شایان ذکر است اشاره‌ای به دستمزد مدرسین سایت داشته باشیم.

شما ممکن است در دو حالت تمایل به نشر ویدئو خود را داشته باشید: یا آن را رایگان در اختیار عموم قرار دهید و یا اینکه در قبال فروش آن از خریدار وجه مربوطه محصول را اخذ نمایید.

صرف نظر از هر حالت ممکنه، می‌بایست شرایطی که در ادامه ذکر شده‌اند را رعایت کرده باشید.

در حالت اول (رایگان) رسانه محتوای باز (Open Content)، نه وجهی از شما برای نشر ویدئو می‌گیرد و نه وجهی به شما پرداخت می‌نماید و دوره آموزشی شما را به رایگان منتشر می‌کند.

اما در حالت بعدی طریقه همکاری به روش درآمد از فروش خواهد بود، به گونه‌ای که 70 درصد از کل مبلغ فروش دوره آموزشی متعلق به مدرس دوره بوده و 30 درصد مابقی به رسانه محتوای باز تعلق می‌گیرد.

شرایط کلی ضبط دوره آموزشی

دوره آموزشی مربوطه، صرف نظر از هر محتوایی که دارد می‌بایست در یکی از توزیعات گنو/لینوکسی ضبط شده باشد. (به‌عنوان مثال دوره دروپال در اوبونتو، دوره آموزشی کار با آردوینو در دبیان و امثالهم). اگر دوره آموزشی شما در محیط ویندوز و یا هر پلتفرم/سیستم‌عامل دیگری ضبط شده باشد از همکاری با شما معذوریم.

پیشنهاد می‌گردد برای ضبط دوره آموزشی در توزیع گنو/لینوکس از ابزار قدرتمند OBS استفاده نمایید. البته این صرفا یک پیشنهاد است و شما می‌توانید از هر ابزار مناسب دیگری برای این کار بهره ببرید.

برای آشنایی یا تسلط بیشتر می‌توانید دوره رایگان آموزش OBS محمد عابدینی را ببینید:

مشاهده دوره آموزش OBS
شرایط کیفی ضبط دوره آموزشی

کیفیت صدا از اهمیت ویژه‌ای برخوردار می‌باشد و می‌بایست فاقد هر گونه نویز یا صدای اضافی دیگری (صدای محیط پیرامون) باشد.

دوره آموزشی تهیه شده صرفا باید برای رسانه محتوای باز تدوین شده باشد و در هیچ سایت مشابه دیگری قرار نگرفته باشد.

از قرار دادن موسیقی متن، در بک‌گراند دوره آموزشی شدیدا پرهیز کنید. این کار موجب حواس‌پرتی مخاطب و ضعیف شدن صدای مدرس می‌گردد.

دوره آموزشی ضبط شده می‌باید فاقد هر گونه لوگو یا آدرس سایت دیگری (در گوشه تصویر یا بک‌گراند صفحه دسکتاپ و هر جای دیگری) باشد.

در حین دوره، مدرس نباید به برند خاصی اشاره کند که جز رقبای ما به‌شمار می‌آیند.

مدرس باید در ابتدا در اواسط و در انتهای دوره به برند ما یعنی رسانه محتوای باز (Open Content) بصورت کلامی اشاره نماید.

مدرس، هنگام تدریس نباید تپق زده، سرفه یا عطسه کند یا صدای قورت دادن بزاقش شنیده شود و بایستی با صدای رسا، دوستانه و پرانرژی به تدریس بپردازد.

قبل از تدوین دوره آموزشی حتما با ما در تماس باشید و یک ویدیوی چنددقیقه‌ای (ترجیحا 5 الی 10 دقیقه)، بصورت نمونه‌کار برای ما بفرستید.

از همکاری با شما سپاسگزاریم.

فراخوان همکاری