ভেরিয়েবল কীভাবে সিডিংয়ের জন্য "~" ব্যবহার করতে পারে?


13

আমি কীভাবে একটি ভেরিয়েবল ব্যবহার করতে পারি - $BASEআমার সিডিতে। আমি নিম্নলিখিত চেষ্টা করেছিলাম তবে আমি একটি ত্রুটি পেয়েছি

$ cd ~/z/repo_1_ruby_193/
23:23:57 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 

$ BASE="~/z"
23:24:03 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 

$ cd $BASE/repo_1_ruby_193
-bash: cd: ~/z/repo_1_ruby_193: No such file or directory
23:24:25 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193 

উত্তর:


25

ইন cd ~/z/আপনি ব্যবহার করছেন টিল্ডা সম্প্রসারণ প্রসারিত করতে ~আপনার হোম ডিরেক্টরীতে মধ্যে। ইন BASE="~/z", আপনি কারণ আপনার উদ্ধৃত নয় ~, চরিত্র তাই এটি সম্প্রসারিত করা হয় না। এই কারণেই আপনি কোনও অস্তিত্বহীন ~ডিরেক্টরি সম্পর্কে অভিযোগ করে একটি বার্তা পান । সমাধানটি উদ্ধৃত না করা, অর্থাত্ BASE=~/zপ্রসারণটি ঘটতে দেওয়া।


11

@ jw013 একটি বৈধ ব্যাখ্যা এবং সমাধান দিয়েছে।

তবে কিছু ক্ষেত্রে থাকতে পারে যখন আপনি পাথগুলি উদ্ধৃত করতে চান, যেমন যখন সেগুলিতে একাধিক স্পেস বা বিশেষ চিহ্ন থাকে symb এই ক্ষেত্রে আপনার $HOMEপরিবর্তে ব্যবহার করা উচিত ~, অর্থাৎ আপনার BASE="~/z"হয়ে যাবে BASE="$HOME/z"এবং সঠিকভাবে কাজ করবে, কারণ প্যারামিটার বিকল্পটি ডাবল উদ্ধৃতিতে ব্যাখ্যা করা হয়েছে, টিলডে সম্প্রসারণের বিপরীতে।


5
এটি করার একটি উপায় এটি তবে এটি প্রয়োজনীয় নয়। BASE=~/"quoted name"ঠিক সূক্ষ্মভাবে কাজ করে, যতক্ষণ না ~অব্যক্ত রেখে যায়।
এইচডিভি

4
@ এইচভিডি: আপনাকে অবশ্যই স্ল্যাশটিকে অব্যক্তভাবে ছেড়ে যেতে হবে। BASE=~/"quoted name"কাজ করে, কিন্তু BASE=~"/quoted name"হয় না।
গর্ডন ডেভিসন

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