পরিবর্তনশীল BUILDNUMBERমান 230. আমি আশা সেট করা হয় 230_কমান্ডের জন্য ছাপা হবে echo $BUILDNUMBER_কিন্তু নিচের চিত্রের আউটপুট খালি।
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
পরিবর্তনশীল BUILDNUMBERমান 230. আমি আশা সেট করা হয় 230_কমান্ডের জন্য ছাপা হবে echo $BUILDNUMBER_কিন্তু নিচের চিত্রের আউটপুট খালি।
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
উত্তর:
কমান্ডটি echo $BUILDNUMBER_ভেরিয়েবলের মান প্রিন্ট করতে চলেছে $BUILDNUMBER_যা সেট করা নেই (আন্ডারস্কোরটি ভেরিয়েবলের নামের জন্য একটি বৈধ অক্ষর যা জেফ শ্যাচলার দ্বারা স্পষ্টভাবে উল্লেখ করা হয়েছে)
আপনাকে কেবল পরিবর্তনশীল নামের চারপাশে ব্রেস (কোঁকড়ানো বন্ধনী) প্রয়োগ করতে হবে বা সর্বাধিক অনমনীয় printfসরঞ্জামটি ব্যবহার করতে হবে :
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
PS: সর্বদা আপনার ভেরিয়েবলগুলি উদ্ধৃত করুন।
জর্জ ভ্যাসিলিউ যেমন ইতিমধ্যে ব্যাখ্যা করেছেন , এর কারণ আপনি পরিবর্তকের $BUILDNUMBER_পরিবর্তে মুদ্রণ করছেন $BUILDNUMBER। আপনি যা চান তা পাওয়ার সর্বোত্তম উপায় হ'ল ${BUILDNUMBER}_জর্জের ব্যাখ্যা অনুসারে ব্যবহার করা। এখানে আরও কিছু বিকল্প রয়েছে:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFS, তাই echo $BUILDNUMBER"_"এখনও ভুল। তিনটির মধ্যে কেবলমাত্র printf '%s_\n' "$BUILDNUMBER"সঠিক যদি আমরা না জানি $BUILDNUMBERবা কী $IFSধরেছি।