tilde=\~${PWD#~}
আমি মনে করি আপনি কি চান?
টিলড সম্পর্কে ঝরঝরে কী যখন এটি একটি প্যাটার্ন হিসাবে প্রসারিত হয় যখন এর উদ্ধৃতি প্রয়োজন হয় না। $HOME
উদ্ধৃতি ব্যতীত একইভাবে ব্যবহার করা অপ্রত্যাশিত ফলাফলগুলি রেন্ডার করে কারণ এর উপাদানগুলির যে কোনও একটি চরিত্র প্যাটার্ন অক্ষর হতে পারে এবং তাই এটি সর্বদা প্রত্যাশিত ফলাফলটি রেন্ডার করতে পারে না।
তবে টিলডের সম্প্রসারণটি সর্বদাই ঘটে বলে মনে করা হয় যেন এটি কোনও উদ্ধৃত বিস্তারের ফলাফল এবং তাই এর ফলাফল অনুমানযোগ্য। এটি উভয়ই case
উল্লেখযোগ্য ব্যতিক্রম ksh93
এবং mksh
যে কারণেই হোক না কেন উভয় নিদর্শন এবং পরামিতি প্যাটার্নের জন্য আমি পরীক্ষামূলকভাবে প্রতিটি শেলকে সত্য বলে মনে করেছি - যার মধ্যে কোনওটিই সেই সক্ষমতাটিতে টিলডের উদ্ধৃত দিকটিকে সম্মান করে না বলে মনে হয়।
এ সম্পর্কে আরও একটি পরিষ্কার জিনিস আপনি $HOME
একই ফ্যাশনে কোনও ডিরেক্টরি পরিচালনা করতে পুনরায় সংজ্ঞায়িত করতে পারেন । উদাহরণ স্বরূপ:
cd ~
HOME=/some/prefix/I/would/like/to/trim
#or, perhaps more usefully, some scripted means of arriving at same
tilde=\~${OLDPWD#~}
HOME=$PWD
এখানে আরও একটি উদাহরণ:
set 1 2 3 4 5 \~
cd ~; cd -; HOME= IFS=/
for d do shift
HOME=${*#~/}/$d
set ~ "$d" $HOME
done; cd -; HOME=$PWD
printf %s\\n "$@"
5/4/3/2/1/2/3/4/5/~/1/2/3/4/5/~
~
5
4
3
2
1
2
3
4
5
~
1
2
3
4
5
~