এই স্ক্রিপ্ট হয়:
#!/bin/bash
thedate=$(date)
var='Current date is $thedate'
echo $var
আউটপুট বর্তমান তারিখ $ তারিখ এবং আমি এটি তারিখ প্রদর্শন করতে চাই, আমি কি ভুল করেছি? কোন সাহায্য প্রশংসা করা হবে।
এই স্ক্রিপ্ট হয়:
#!/bin/bash
thedate=$(date)
var='Current date is $thedate'
echo $var
আউটপুট বর্তমান তারিখ $ তারিখ এবং আমি এটি তারিখ প্রদর্শন করতে চাই, আমি কি ভুল করেছি? কোন সাহায্য প্রশংসা করা হবে।
উত্তর:
সমস্যা হল যে bash
আপনি ব্যবহার না হওয়া পর্যন্ত শুধুমাত্র পরিবেশ ভেরিয়েবল প্রসারিত eval
, যা কমান্ড লাইনটিকে দুই বার বিশ্লেষণ করে:
eval echo $var
উল্লেখ্য যে তারিখ এবং সময় প্রদর্শিত হয় যখন বর্তমান thedate
সেট করা হয়, যখন না $var
রেফারেন্স করা হয়। বর্তমান সময় প্রদর্শন করার জন্য $var
উল্লেখ করা হয়, আপনি প্রয়োজন: -
var='Current date is $(date)'
eval echo $var
ভেরিয়েবল ব্যবহার করা ভালো হবে না, তবে একটি ফাংশন সংজ্ঞায়িত করুন: -
cdate() { echo Current date is $(date); }
...
cdate
অবশ্যই, এটি এখনও ব্যবহার করা ভাল নয় echo
, কিন্তু যাক date
নিজেই অতিরিক্ত টেক্সট যোগ করুন:
cdate() { date +"Current date is %c"; }
এই হিসাবে বেশ একই বিন্যাস আউটপুট না date
ডিফল্ট, কিন্তু ডিফল্ট জন্য কোন ফরম্যাট স্পেসিফিকেশন নেই।
var='Current date is $thedate'
ভেরিয়েবল একক উদ্ধৃতির মধ্যে প্রসারিত হয় না, তাই এটি আক্ষরিক পাঠ্য ধারণকারী একটি স্ট্রিং নির্ধারণ করে $thedate
। পরিবর্তনশীল প্রসারিত আছে আপনি এখানে ডবল কোট ব্যবহার করা উচিত।
echo $var
এছাড়াও, এখানে, আপনাকে ভেরিয়েবলের চারপাশে ডাবল কোট ব্যবহার করতে হবে যাতে এটি শব্দ বিভাজন এবং পথের নাম বিস্তারের বিষয় হতে পারে, যেমন। echo "$var"
। এই বিশেষ ক্ষেত্রে আপনি বেশিরভাগ উদ্ধৃতি ব্যবহার না করে দূরে যেতে পারেন, যেহেতু তারিখটিতে সম্ভবত ওয়াইল্ডকার্ড অক্ষর থাকবে না। কিন্তু উদ্ধৃতি ছাড়া, যেমন। তারিখ স্ট্রিং Fri Dec 7 20:41:21 EET 2018
হিসাবে আউটপুট হবে Fri Dec 7 20:41:21 EET 2018
, অর্থাৎ, মাস নামটির পরে দুবার স্থান একক স্থানটিতে ধ্বসে ফেলা হবে।
thedate
বরাদ্দ করা হয় (না var
), যেহেতু যে কমান্ড প্রতিস্থাপন হয়। আমি ঠিক কখন তারা চালাতে চান জানি না date
কমান্ড, তারা না বলে, এবং এমনকি প্রসারিত না আরো তাত্ক্ষণিক সমস্যা আছে $thedate
...
var="Current date is $thedate"
, তারপর তারিখ এবং সময় সময় সেট করা হয়var
সংজ্ঞায়িত করা হয়, সময় না$var
রেফারেন্স করা হয়।