ব্যাশ ফাইলগুলিতে ভেরিয়েবলের সাথে: এবং: এর মধ্যে পার্থক্য


1

আমি একটি বাশ ফাইল জুড়ে এসেছি যার মধ্যে এরকম কিছু রয়েছে

MYVAR := SomeVal

আমি জানি কিছু টিউটোরিয়াল পড়ার পরে আপনি যেমন মান সেট করেন

MYVAR = SomeVal

উপরের দুটির মধ্যে পার্থক্য কী?


1
আপনার জানা উচিত যে আপনি অ্যাসাইনমেন্ট অপারেটরের চারপাশে কোনও ফাঁকা জায়গা রাখেন না।
ক্রোয়ে

আপনি কি নিশ্চিত যে এটি কোনও মেকফাইল ছিল না?
মিশা পলিটোস্কি

উত্তর:


3

আপনি সম্ভবত একটি ডিফল্ট মান সেট করতে একটি প্যারামিটার সম্প্রসারণ দেখেছেন ।

পার্থক্যটি হ'ল ভেরিয়েবলটি আনসেট করা আছে বা এটি নাল মান সহ সেট করা আছে:

  1. যখন ভেরিয়েবলটি আনসেট করা হয় তখন কোনও পার্থক্য নেই

    $ unset MYVAR; : ${MYVAR:=SomeVal}; echo "$MYVAR"
    SomeVal
    $ unset MYVAR; : ${MYVAR=SomeVal}; echo "$MYVAR"
    SomeVal
  2. যখন ভেরিয়েবলের একটি মান থাকে, তখন কোনও পার্থক্য নেই

    $ MYVAR="foo"; : ${MYVAR:=SomeVal}; echo "$MYVAR"
    foo
    $ MYVAR="foo"; : ${MYVAR=SomeVal}; echo "$MYVAR"
    foo
  3. যখন ভেরিয়েবলের নাল মান হয়:

    $ MYVAR=""; : ${MYVAR:=SomeVal}; echo "$MYVAR"
    SomeVal
    $ MYVAR=""; : ${MYVAR=SomeVal}; echo "$MYVAR"
    # empty line
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.