এখানে এমন কয়েকটি সিরিজের মামলা রয়েছে যেখানে echo $var
সুনির্দিষ্টভাবে দেওয়া হয়েছে তার চেয়ে আলাদা মান দেখাতে পারে। নির্ধারিত মানটি "ডাবল কোটড", 'সিঙ্গল কোটড' বা অব্যর্থিত কিনা তা বিবেচনা না করেই এটি ঘটে।
আমার ভেরিয়েবলটি সঠিকভাবে সেট করতে আমি কীভাবে শেল পাব?
তারকাচিহ্ন
প্রত্যাশিত আউটপুটটি /* Foobar is free software */
, তবে পরিবর্তে আমি ফাইলের নামের একটি তালিকা পাই:
$ var="/* Foobar is free software */"
$ echo $var
/bin /boot /dev /etc /home /initrd.img /lib /lib64 /media /mnt /opt /proc ...
চতুস্কন বন্ধনী
প্রত্যাশিত মানটি হয় [a-z]
তবে আমি কখনও কখনও তার পরিবর্তে একটি চিঠি পাই!
$ var=[a-z]
$ echo $var
c
লাইন ফিডস (নিউলাইনস)
প্রত্যাশিত মানটি পৃথক লাইনের এএ তালিকা, তবে পরিবর্তে সমস্ত মান এক লাইনে থাকে!
$ cat file
foo
bar
baz
$ var=$(cat file)
$ echo $var
foo bar baz
একাধিক স্পেস
আমি সাবধানে সারিবদ্ধভাবে টেবিল শিরোনাম প্রত্যাশা করেছি, তবে পরিবর্তে একাধিক স্পেস হয় অদৃশ্য হয়ে যায় বা একটিতে ভেঙে যায়!
$ var=" title | count"
$ echo $var
title | count
ট্যাব
আমি দুটি ট্যাব দ্বারা বিভাজিত মান প্রত্যাশা করেছি, তবে পরিবর্তে দুটি স্থান পৃথক মান পেয়েছি!
$ var=$'key\tvalue'
$ echo $var
key value
var=$(cat file)
ঠিক আছে, কিন্তুecho "$var"
প্রয়োজন।