শেল স্ক্রিপ্টগুলিতে ব্যাকটিক্সের পরিবর্তে $ () ব্যবহারের সুবিধা কী?


175

কমান্ড লাইনের আউটপুট ক্যাপচার করার জন্য দুটি উপায় রয়েছে bash:

  1. লিগ্যাসি বোর্ন শেল ব্যাকটিক্স ``:

    var=`command`
  2. $() বাক্য গঠন (যা আমি যতদূর জানি বাশ নির্দিষ্ট, বা কমপক্ষে মূল বোর্নের মতো নন-পসিক্স পুরানো শাঁস দ্বারা সমর্থিত নয়)

    var=$(command)

ব্যাকটিক্সের সাথে তুলনা করে দ্বিতীয় সিনট্যাক্স ব্যবহার করে কি কোনও লাভ আছে? বা দুটি সম্পূর্ণ 100% সমতুল্য?


14
$()পসিক্স এবং সমস্ত আধুনিক বোর্ন শেল যেমন: ksh, বাশ, অ্যাশ, ড্যাশ, জেডএস, ব্যস্তবক্স, আপনি এটির নাম দ্বারা সমর্থিত। (এতটা আধুনিক কোনও সোলারিস নয় /bin/sh, তবে সোলারিতে আপনি /usr/xpg4/bin/shপরিবর্তে আধুনিকটি ব্যবহারের বিষয়টি নিশ্চিত করবেন )।
জেনস

27
এছাড়াও, $()এলিয়াসে ব্যাকটিক্স ব্যবহার এবং ব্যবহার সম্পর্কে একটি নোট । আপনি যদি alias foo=$(command)আপনার .bashrcতারপর commandমৃত্যুদন্ড কার্যকর করা হবে ওরফে আদেশ নিজেই সময় চালানো হয় .bashrcব্যাখ্যা। সাথে alias foo=`command`, commandপ্রতিবারের মতো উরফ চালানো হলে তা কার্যকর করা হবে। তবে আপনি যদি ফর্মটি (উদাহরণস্বরূপ ) $দিয়ে পালাতে পারেন তবে এটিও প্রতিবার ব্যাখ্যার পরিবর্তে পরিবর্তে উর্ফ চালানোর সময় কার্যকর করা হবে । আমি যতদূর পরীক্ষা করে বলতে পারি; ব্যাশ ডক্সে আমি এমন কিছু খুঁজে পাচ্ছি না যা এই আচরণটি ব্যাখ্যা করে। $()alias foo=\$(command).bashrc
ডায়ারসাইড

4
@ ডিয়ার্সাইড কোন শেল এটি, আমি ব্যাশ এবং পসিক্স শেল পরীক্ষা করেছি, ব্যাকটিকটি যখন উত্স হয় তখন সম্পাদন হয়। সাধারণ উদাহরণ: ওরফে কারডেট = `তারিখ` আমি উত্সটি উত্পন্ন করে কার্ডেট চালানোর পরে, আমি বার্তা পেয়েছি এটি উদাহরণস্বরূপ সোম (সোমবার উত্সাহিত) কমান্ডটি খুঁজে পাবে না।
thecarpy

@ সাইডসাইড এটি সত্য নয়। এমনকি ওরফে ফুও = `command` commandশুধুমাত্র একবারেই কার্যকর করা হয়। আমি এটি পরীক্ষা করেছি: ফাংশন আআ () {প্রিন্টফের তারিখ; প্রতিধ্বনি এএএ >> ~ / test.txt; } ওরফে টেস্ট 1 = aaa। ফাংশন এএএএল একবার ব্যবহার করে (প্রতিটি লগইনের পরে) যতক্ষণ না ওরফে ( test1) নির্বাহ করা হয়েছিল। আমি .bashrc (ডেবিয়ান 10 তে) ব্যবহার করেছি।
প্রাণচঞ্চল

কোনও ধারণা নেই, আমি সাড়ে পাঁচ বছর আগে আমি যে ধরণের ব্যাশ ব্যবহার করেছি তা এটি ছিল, যা সম্ভবত তখনও বেশ পুরানো ছিল। এটা সম্ভব যে আমার পরীক্ষাটি ভুল ছিল তবে এটি এখনই গুরুত্ব সহকারে গুরুত্বপূর্ণ কারণ আমার সন্দেহ যে কেউ এখনও যেটি সংস্করণ ছিল তা ব্যবহার করছে।
ডায়ারসাইড

উত্তর:


156

প্রধানটি হ'ল তাদের বাসা বাঁধার ক্ষমতা , কমান্ডের মধ্যে কমান্ডগুলি, আপনার বিচক্ষণতা হারানো ছাড়াই কিছুটা পালানোর কোনও প্রকার ব্যাকটিক্সে কাজ করবে কিনা তা বের করার চেষ্টা করে।

একটি উদাহরণ, যদিও কিছুটা স্বীকৃত:

deps=$(find /dir -name $(ls -1tr 201112[0-9][0-9]*.txt | tail -1l) -print)

যা আপনাকে /dirডিরেক্টরি ট্রিতে সমস্ত ফাইলের একটি তালিকা দেবে যা ডিসেম্বর ২০১১ (ক) থেকে প্রথম তারিখের পাঠ্য ফাইলের একই নাম রয়েছে ।

আর একটি উদাহরণ হ'ল পিতামাতার ডিরেক্টরিটির নাম (পুরো পাথ নয়) পাওয়ার মতো:

pax> cd /home/pax/xyzzy/plugh
pax> parent=$(basename $(dirname $PWD))
pax> echo $parent
xyzzy

(ক) এখন নির্দিষ্ট কমান্ডটি আসলে কাজ না করে, আমি কার্যকারিতা পরীক্ষা করে দেখিনি। সুতরাং, আপনি যদি আমাকে এটির জন্য ভোট দিয়ে থাকেন তবে আপনি অভিপ্রায়টি হারিয়ে ফেলেছেন :-) এটি কীভাবে আপনি বাসা বাঁধতে পারেন তার উদাহরণ হিসাবে বোঝানো হয়েছে, বাগ-মুক্ত উত্পাদন-প্রস্তুত স্নিপেট হিসাবে নয়।


86
আমি আশা করি যে এসও-তে সমস্ত কোডই প্রস্তুত প্রস্তুত স্নিপেট হবে, যা নাসা শাটল কোড নির্ভরযোগ্যতার মানদণ্ডের জন্য ডিজাইন করা হয়েছে। আর কিছু না কম হলেও একটি পতাকা এবং একটি মুছে ফেলা ভোট পায়।
ডিভিকে

1
@ ডিভিকে আপনি যদি রসিকতা না করেন সে ক্ষেত্রে আমি অসম্মতি জানাচ্ছি যে এসএসটি ডিফল্টগুলি (সিসি-বাই-এসএ বা এমআইটি লাইসেন্স) থেকে স্বয়ংক্রিয়ভাবে পুনরায় প্রকাশ করতে ব্যর্থ হওয়ার জন্য কোড অবদানগুলি পতাকাঙ্কিত করা উচিত যাতে উদ্দেশ্যটির এই ধরণের গ্যারান্টি বা ফিটনেস অনুমোদিত হয়। আমি পরিবর্তে আমার নিজের ঝুঁকিতে এসও-তে কোডটি পুনরায় ব্যবহার করতে এবং সহায়কতা, প্রযুক্তিগত যোগ্যতা ইত্যাদি অনুসারে ভোটদানের জন্য ভোট দেব
chrstphrchvz

9
@ chrstphrchvz, আপনি যদি আমার প্রোফাইলটি দেখুন, আপনি এই ছোট্ট স্নিপেটটি দেখতে পাবেন: "স্ট্যাক ওভারফ্লোতে আমি যে সমস্ত কোড পোস্ট করি সেগুলি" আপনি এটি দিয়ে যা চান তাই করুন "লাইসেন্সের আওতায় আসে, যার পুরো পাঠ্যটি এই: Do whatever the heck you want with it." :-) যে কোনও ক্ষেত্রেই, আমি ডিভিকে থেকে রসবোধের বিষয়টি বেশ নিশ্চিত।
paxdiablo

1
তবে এটি যদি "সিডি / হোম / প্যাক্স / এক্সজি / প্লোভার" হত তবে কী হবে? আপনি কি নিজেকে পৃথক ছোট ছোট প্যাসেজগুলির গোলকধাঁধায় খুঁজে পাবেন?
ডানকান

@ ওয়াচার্জিন আপনি কি জানেন যে এই ঘটনাটি সি ++ ভাষাতে ব্যবহৃত সংজ্ঞায়িত আক্ষরিক যোগ করার জন্য একটি প্রেরণা? en.cppreferences.com/w/cpp/language/user_literal
টমাসম্যাকলিওড

59

মনে করুন আপনি কোথায় gccইনস্টল করা হয়েছে তার সাথে সম্পর্কিত lib ডিরেক্টরিটি সন্ধান করতে চান । আপনার একটি পছন্দ আছে:

libdir=$(dirname $(dirname $(which gcc)))/lib

libdir=`dirname \`dirname \\\`which gcc\\\`\``/lib

প্রথমটি দ্বিতীয়টির চেয়ে সহজ - প্রথমটি ব্যবহার করুন।


4
এই কমান্ড বিকল্পের কাছাকাছি কিছু উদ্ধৃতি দেখতে ভাল হবে!
টম ফেনেক

1
কমপক্ষে ব্যাশের জন্য, @ টমফেনেকের মন্তব্য কার্যভারের ক্ষেত্রে প্রযোজ্য নয়। x=$(f); x=`f` হিসাবে একই আচরণ x="$(f)"; x="`f`"। এর বিপরীতে, অ্যারে নিয়োগ x=($(f)); x=(`f`) না এ বিভাজন সঞ্চালন $IFSযখন কমান্ড আবাহন আশানুরূপ অক্ষর। এটি সুবিধাজনক ( x=1 2 3 4কোনও মানে নেই) তবে বেমানান।
kdb

@ কেডিবি আপনি x=$(f)উদ্ধৃতি ব্যতীত কাজ করার বিষয়ে ঠিক বলেছেন । আমার আরও নির্দিষ্ট হওয়া উচিত ছিল; আমি ব্যবহার করার প্রস্তাব দিচ্ছিলাম libdir=$(dirname "$(dirname "$(which gcc)")")/lib( অভ্যন্তরীণ কমান্ড বিকল্পের চারপাশে উদ্ধৃতি )। যদি বিনা প্রশ্নে রেখে দেওয়া হয়, আপনি এখনও স্বাভাবিক শব্দ বিভাজন এবং গ্লোব বিস্তারের সাপেক্ষে।
টম ফেনেক

38

ব্যাকটিকস ( `...`) হ'ল লেগ্যাসি সিনট্যাক্স যা নন-পসিক্স-সামঞ্জস্যপূর্ণ বোর্ন শেলগুলির মধ্যে কেবল অতি প্রাচীনতমের জন্য প্রয়োজনীয় $(...)এবং বেশিরভাগ কারণে পসিক্স এবং আরও পছন্দসই:

  • \ব্যাকটিক্সের অভ্যন্তরে ব্যাকস্ল্যাশগুলি ( ) ব্যতীত স্পষ্টভাবে পরিচালনা করা হয়:

    $ echo "`echo \\a`" "$(echo \\a)"
    a \a
    $ echo "`echo \\\\a`" "$(echo \\\\a)"
    \a \\a
    # Note that this is true for *single quotes* too!
    $ foo=`echo '\\'`; bar=$(echo '\\'); echo "foo is $foo, bar is $bar" 
    foo is \, bar is \\
  • ভিতরে নেস্টেড উদ্ধৃতি $()অনেক বেশি সুবিধাজনক:

    echo "x is $(sed ... <<<"$y")"

    পরিবর্তে:

    echo "x is `sed ... <<<\"$y\"`"

    বা কিছু লিখতে:

    IPs_inna_string=`awk "/\`cat /etc/myname\`/"'{print $1}' /etc/hosts`

    কারণ $()উদ্ধৃতি দেওয়ার জন্য সম্পূর্ণ নতুন প্রসঙ্গ ব্যবহার করে

    যা বোর্ন এবং কর্ন শেলগুলির জন্য এই ব্যাকস্ল্যাশগুলির প্রয়োজন হবে হিসাবে পোর্টেবল নয়, যদিও বাশ এবং ড্যাশ নেই।

  • কমান্ড প্রতিস্থাপনের জন্য সিনট্যাক্স সহজ:

    x=$(grep "$(dirname "$path")" file)

    চেয়ে:

    x=`grep "\`dirname \"$path\"\`" file`

    কারণ $()উদ্ধৃতি দেওয়ার জন্য সম্পূর্ণ নতুন প্রসঙ্গটি প্রয়োগ করে, তাই প্রতিটি কমান্ডের প্রতিস্থাপন সুরক্ষিত থাকে এবং উদ্ধৃতি এবং পলায়নের বিষয়ে বিশেষ উদ্বেগ ছাড়াই নিজের দ্বারা চিকিত্সা করা যেতে পারে। ব্যাকটিক্স ব্যবহার করার সময়, এটি দুটি এবং উপরের স্তরের পরে আরও সুশৃঙ্খল এবং কুরুচিপূর্ণ হয়।

    আরও কয়েকটি উদাহরণ:

    echo `echo `ls``      # INCORRECT
    echo `echo \`ls\``    # CORRECT
    echo $(echo $(ls))    # CORRECT
  • ব্যাককোটগুলি ব্যবহার করার সময় এটি বেমানান আচরণের একটি সমস্যা সমাধান করে:

    • echo '\$x' আউটপুট \$x
    • echo `echo '\$x'` আউটপুট $x
    • echo $(echo '\$x') আউটপুট \$x
  • ব্যাকটিক্স সিনট্যাক্সের এম্বেড থাকা কমান্ডের সামগ্রীতে historicalতিহাসিক বিধিনিষেধ রয়েছে এবং ব্যাককোটগুলি অন্তর্ভুক্ত করে এমন কিছু বৈধ স্ক্রিপ্টগুলি পরিচালনা করতে পারে না, যখন নতুন $()ফর্মটি কোনও প্রকারের বৈধ এম্বেডড স্ক্রিপ্ট প্রক্রিয়া করতে পারে।

    উদাহরণস্বরূপ, এই অন্যথায় বৈধ এম্বেড থাকা স্ক্রিপ্টগুলি বাম কলামে কাজ করে না, তবে ডান আইইইইতে কাজ করবে :

    echo `                         echo $(
    cat <<\eof                     cat <<\eof
    a here-doc with `              a here-doc with )
    eof                            eof
    `                              )
    
    
    echo `                         echo $(
    echo abc # a comment with `    echo abc # a comment with )
    `                              )
    
    
    echo `                         echo $(
    echo '`'                       echo ')'
    `                              )

অতএব- $প্রিফিক্সড কমান্ড প্রতিস্থাপনের জন্য সিনট্যাক্সটি পছন্দসই পদ্ধতি হওয়া উচিত, কারণ এটি পরিষ্কার সিনট্যাক্স (মানব এবং মেশিনের পাঠযোগ্যতার উন্নতি করে) দিয়ে দৃশ্যত পরিষ্কার, এটি নীড় এবং স্বজ্ঞাত, এর অভ্যন্তরীণ পার্সিং পৃথক, এবং এটি আরও সুসংগত (সাথে অন্যান্য সমস্ত বিস্তৃতি যা ডাবল-কোটের মধ্যে পার্স করা হয়) যেখানে ব্যাকটিকগুলি একমাত্র ব্যতিক্রম এবং `চরিত্রটি সহজেই ছদ্মবেশে পড়ে যখন "এটি পড়তে আরও বেশি কঠিন করে তোলে, বিশেষত ছোট বা অস্বাভাবিক ফন্টের সাহায্যে।

উত্স: কেন (ব্যাকটিক্স) $(...)বেশি পছন্দ করা হয় `...`? বাশফ্যাকু তে

আরো দেখুন:


1
অ্যাকসেন্ট মধ্যে উদ্ধৃত নেস্টেড ভারি দায়িত্ব-শৈলী প্রতিকল্পন আসলে undefined হয়, আপনি ডবল কোট ব্যবহার করতে পারেন পারেন বাহিরে বা ভিতরে কিন্তু উভয় portably। শাঁস তাদের আলাদাভাবে ব্যাখ্যা করে; কারও কারও কাছে এড়াতে ব্যাকস্ল্যাশ দরকার হয়, কারও কারও কাছে ব্যাকস্ল্যাশ-পলায়ন না হওয়া দরকার।
মীরাবিলো

23

ম্যান বাশ থেকে:

          $(command)
   or
          `command`

   Bash performs the expansion by executing command and replacing the com-
   mand  substitution  with  the  standard output of the command, with any
   trailing newlines deleted.  Embedded newlines are not deleted, but they
   may  be  removed during word splitting.  The command substitution $(cat
   file) can be replaced by the equivalent but faster $(< file).

   When the old-style backquote form of substitution  is  used,  backslash
   retains  its  literal  meaning except when followed by $, `, or \.  The
   first backquote not preceded by a backslash terminates the command sub-
   stitution.   When using the $(command) form, all characters between the
   parentheses make up the command; none are treated specially.

9

অন্যান্য উত্তর ছাড়াও,

$(...)

দৃশ্যমান চেয়ে ভাল দাঁড়িয়েছে

`...`

ব্যাকটিকগুলি দেখতে অনেকটা অ্যাডাস্ট্রোফসের মতো; আপনি যে ফন্টটি ব্যবহার করছেন তার উপর নির্ভর করে এটি পরিবর্তিত হয়।

(এবং, যেমনটি আমি কেবল লক্ষ্য করেছি, ব্যাকটিকগুলি ইনলাইন কোডের নমুনাগুলিতে প্রবেশ করা বেশ শক্ত)


2
আপনার অবশ্যই একটি অদ্ভুত কীবোর্ড থাকতে হবে (বা আমি করব?)। আমার জন্য ব্যাকটিকগুলি টাইপ করা অনেক সহজ - এগুলি উপরের বাম কোণার কী, কোনও শিফট বা এএলটি প্রয়োজন নেই।
ডিভি কে

1
@ ডিভিকে: আমি তাদের উপস্থিতি সম্পর্কে কথা বলছিলাম, টাইপিংয়ের স্বাচ্ছন্দ্য নয়। (আমার কীবোর্ড সম্ভবত পুলিশের সমান।) তা সত্ত্বেও, এখন যে আপনি এটি উল্লেখ, আমি মনে করি আমি ভাল পেশী মেমরি আছে $ (এবং )আমি ব্যাকটিক জন্য কি চেয়ে; YMMV।
কিথ থম্পসন

কখনও বাশ-এ প্রোগ্রাম করা হয়নি (পুরানো ksh থেকে পার্ল এড়িয়ে যাওয়া) যাতে নির্দিষ্ট নির্দিষ্ট বাক্য
গঠনের

1
@ ডিভিকে, আমি ভেবেছিলাম কীথ এখানে নন-ব্লক কোড (ব্লক কোডের অর্থ লাইনের শুরুতে চারটি স্পেস ব্যবহার করে) ব্যাকটিকগুলি ব্যবহার করে এটিতে ব্যাকটিক্স স্থাপন করা কঠিন করে তোলে, এর অন্য চিত্র বাসা বাঁধার অসুবিধা :-) এফডাব্লুআইডাব্লু, আপনি কোড এবং / কোড ট্যাগ (নন-ব্লক কোড করার অন্য উপায়) সন্ধান করতে পারেন যাতে আরও সহজে ব্যাকটিক্স থাকতে পারে।
প্যাক্সিডিয়াবলো

@ প্যাক্স - এটি পেয়েছি Duh! আমি আসলে কোনও কারণে ব্লককোডে মানসিকভাবে আটকে ছিলাম।
ডিভিকে


4

এটি পসিএক্স স্ট্যান্ডার্ড যা $(command)কমান্ড প্রতিস্থাপনের ফর্মটি সংজ্ঞায়িত করে । বর্তমানে ব্যবহৃত বেশিরভাগ শেলগুলি পসিক্স অনুগত এবং প্রত্নতাত্ত্বিক ব্যাকটিক স্বরলিপি ধরে এই পছন্দের ফর্মটিকে সমর্থন করে। কমান্ড প্রতিকল্পন শেল ভাষা নথির অধ্যায় (2.6.3) এই বর্ণনা

কমান্ড প্রতিস্থাপন কমান্ডের নামের পরিবর্তে একটি কমান্ডের আউটপুট প্রতিস্থাপন করতে দেয়। কমান্ড প্রতিস্থাপন ঘটবে যখন কমান্ডটি নিম্নরূপে আবদ্ধ থাকে:

$(command)

বা (ব্যাককোটেড সংস্করণ):

`command`

শেল নির্বাহ দ্বারা কমান্ড প্রতিকল্পন প্রসারিত হইবে কমান্ড একটি subshell পরিবেশে (দেখুন শেল এক্সেকিউশন এনভায়রনমেন্টের এবং কমান্ড প্রতিকল্পন (টেক্সট প্রতিস্থাপন) কমান্ড কমান্ড মান আউটপুট প্লাস এনক্লোজিং "$ ()" বা backquotes), অপসারণ <newline>প্রতিস্থাপনের শেষে এক বা একাধিক অক্ষরের ক্রম । এমবেডেড<newline>আউটপুট শেষ হওয়ার আগে অক্ষরগুলি সরানো হবে না; তবে, ফিল্ড বিভাজনের সময় এগুলি ফিল্ড ডিলিমিটার হিসাবে বিবেচনা করা যেতে পারে এবং আইএফএসের মান এবং কার্যকর হয় এমন উদ্ধৃতি নির্ধারণের উপর নির্ভর করে নির্মূল করা যেতে পারে। যদি আউটপুটে কোনও নাল বাইট থাকে তবে আচরণটি অনির্দিষ্ট।

কমান্ড প্রতিস্থাপনের ব্যাককোটিড স্টাইলের মধ্যে, <backslash>এর আক্ষরিক অর্থ বজায় রাখা উচিত, তারপরে ব্যতীত: ' $', ' `', বা <backslash>। মিলে যাওয়া ব্যাককোটির জন্য অনুসন্ধানটি প্রথম অনাবৃত অ-পালানো ব্যাককোট দ্বারা সন্তুষ্ট হবে; এই অনুসন্ধানের সময়, যদি শেল মন্তব্য, একটি এখানে-নথি, $ ( কমান্ড ) ফর্মের একটি এম্বেড করা কমান্ড প্রতিস্থাপন , বা উদ্ধৃত স্ট্রিংয়ের মধ্যে যদি কোনও অব্যাহতিপ্রাপ্ত ব্যাককোটের মুখোমুখি হয় তবে অপরিজ্ঞাত ফলাফল আসে। একটি একক-উদ্ধৃত বা ডাবল-কোটেড স্ট্রিং শুরু হয়, তবে শেষ হয় না, `...`ক্রমটির মধ্যেই অপরিবর্তিত ফলাফল আসে।

$ ( কমান্ড ) ফর্মের সাহায্যে মেলা বন্ধ হওয়া বন্ধনীতে ওপেন বন্ধনী অনুসরণকারী সমস্ত অক্ষর কমান্ডটি গঠন করে । কমান্ডের জন্য কোনও বৈধ শেল স্ক্রিপ্ট ব্যবহার করা যেতে পারে , কেবলমাত্র পুনর্নির্দেশের সমন্বিত স্ক্রিপ্ট ব্যতীত যা অনির্ধারিত ফলাফল দেয়।

কিল্ড প্রসারণ, প্যারামিটার সম্প্রসারণ, কমান্ড প্রতিস্থাপন, বা পাটিগণিতের সম্প্রসারণের জন্য কমান্ড প্রতিস্থাপনের ফলাফলগুলি প্রক্রিয়া করা হবে না। যদি কোনও কমান্ড প্রতিস্থাপন ডাবল-কোটের মধ্যে ঘটে তবে ক্ষেত্র বিভাজন এবং পথের নাম প্রসারণ বিকল্পের ফলাফলের জন্য করা হবে না।

কমান্ড প্রতিস্থাপন বাসা বাঁধতে পারে। ব্যাককোটিড সংস্করণে নেস্টিং নির্দিষ্ট করার জন্য, অ্যাপ্লিকেশনটি <backslash>অক্ষরের সাথে অভ্যন্তরীণ ব্যাককোটিসের আগে হবে ; উদাহরণ স্বরূপ:

\`command\`

শেল কমান্ড ভাষার সিনট্যাক্সের সাথে বিস্তৃতকরণের জন্য একটি স্পষ্টতা রয়েছে "$((", এটি পাটিগণিত সম্প্রসারণ বা একটি কমান্ড বিকল্পের সাথে পরিচয় করিয়ে দিতে পারে যা সাবসেলের সাথে শুরু হয় Ar প্রতিস্থাপন যদি এটি নির্ধারণ করে যে এটি পাথের গাণিতিক সম্প্রসারণ হিসাবে প্রসারণকে পার্স করতে পারে না performing এই সংকল্পটি সম্পাদন করার সময় শেলটি নেস্টেড বিস্তারের মূল্যায়ন করতে হবে না it শেল একটি অসম্পূর্ণ গাণিতিক সম্প্রসারণ যেমন সম্প্রসারণ আচরণ এবং একটি বাক্য গঠন ত্রুটি প্রতিবেদন হইবে। একজন অনুসারী আবেদন নিশ্চিত করতে হবে যে এটা আলাদা " $(" এবং '('দুটি টোকেন (যেটি সাদা স্থানের সাথে পৃথক করুন) এর মধ্যে একটি কমান্ড প্রতিস্থাপনে শুরু হয় যা একটি সাবশেল দিয়ে শুরু হয়। উদাহরণস্বরূপ, একটি কমান্ড সাবস্টিটিউশন সহ একটি একক সাবশেল লিখতে পারে:

$( (command) )


4

এটি একটি উত্তরাধিকার প্রশ্ন, তবে আমি $(...)ওভারের একটি সঠিক বৈধ উদাহরণ নিয়ে এসেছি `...`

আমি সাইগউইন চলমান উইন্ডোতে রিমোট ডেস্কটপ ব্যবহার করছিলাম এবং একটি আদেশের ফলে পুনরাবৃত্তি করতে চেয়েছিলাম। দুঃখজনকভাবে, ব্যাকটিক চরিত্রটি প্রবেশ করা অসম্ভব ছিল, হয় হয় দূরবর্তী ডেস্কটপ জিনিস বা নিজেই সাইগউইনের কারণে।

এটি অনুমান করার মতো বুদ্ধিমান যে এই ধরণের অদ্ভুত সেটআপগুলিতে একটি ডলার সাইন এবং প্রথম বন্ধনী টাইপ করা সহজ হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.