উত্তর:
ত্রুটির বার্তাটি উত্পাদিত হয়েছে কারণ ~
জিলার উত্তরে বর্ণিত হিসাবে টিলডের উদ্ধৃতি দেওয়া হয়েছে । আপনি যদি এটি ব্যবহার করতে চান ~
তবে স্ক্রিপ্টের প্রাসঙ্গিক অংশটি হ'ল:
BIN_DIR=~/bin/
আপনি যদি স্ট্রিংটি উদ্ধৃত করতে চান তবে যে কোনও কারণে , আপনি পরিবেশের পরিবর্তনশীলটি ব্যবহার করতে পারেন $HOME
:
BIN_DIR="$HOME/bin/"
আমার মতে দ্বিতীয় পদ্ধতির আরও ভাল অনুশীলন is
~
স্ক্রিপ্ট ব্যবহার করে কোনও ভুল নেই । এটি কমান্ড লাইনের মতো ঠিক একইভাবে কাজ করে। সমস্যাটি হ'ল জান্নার উত্তরে বর্ণিত ব্লক টিলডে সম্প্রসারণের কথা উল্লেখ করা ।
$HOME
স্ক্রিপ্টগুলিতে ব্যবহার করা ভাল ধারণা।
$HOME
করতে পারেন? আপনার দেওয়া একমাত্র ব্যাখ্যাটি বলতে হবে, "এটি একটি ভাল ধারণা, কারণ আপনার কম মনোযোগ দেওয়া উচিত" " এর অর্থ কী তা আমার কোনও ধারণা নেই। আপনি একটি সম্পাদনা এ ব্যাখ্যা করতে পারেন? এটি ছাড়া আপনার উত্তরকে সমর্থন করার মতো কিছুই নেই, সুতরাং অবশ্যই এটি এতে অন্তর্ভুক্ত। পিলিক্স দ্বারা টিল্ড সম্প্রসারণের জন্য বেশ কিছু সময়ের জন্য প্রয়োজন ছিল এবং স্ক্রিপ্টটির হ্যাশবাং লাইন #!/bin/bash
তাই আমার মনে হয় বহনযোগ্যতা কারণ নয় isn't
~
উদ্ধৃত হওয়ার কারণে এটি কাজ করে না । ডাবল উদ্ধৃতিগুলি "
টিলডের প্রসারকে দমন করে । আক্ষরিক নাম সহ কোনও ডিরেক্টরি নেই ~/bin
। হিসাবে ব্যাখ্যা man bash
(জোর খনি):
তিলদে সম্প্রসারণ
একটি শব্দ যদি একটি অব্যক্ত টিল্ড অক্ষর (`~ ') দিয়ে শুরু হয়, তবে প্রথম অনাবৃত স্ল্যাশের পূর্ববর্তী সমস্ত অক্ষর (বা সমস্ত অক্ষর, যদি কোন উদ্বৃত্ত স্ল্যাশ না থাকে) টিলড-উপসর্গ হিসাবে বিবেচিত হয়। যদি টিলডে উপসর্গের কোনও অক্ষর উদ্ধৃত না হয়, তিল্ডের পরে টিলডে উপসর্গের অক্ষরগুলি একটি সম্ভাব্য লগইন নাম হিসাবে গণ্য হবে। এই লগইনটির নামটি যদি নাল স্ট্রিং হয় তবে শিল প্যারামিটার Home এর মান দিয়ে টিল্ড প্রতিস্থাপন করা হবে। যদি হোমটি সেট না করা থাকে, তার পরিবর্তে শেল চালানো ব্যবহারকারীর হোম ডিরেক্টরিটি পরিবর্তিত করা হবে। অন্যথায়, টিলডে উপসর্গ নির্দিষ্ট লগইন নামের সাথে যুক্ত হোম ডিরেক্টরিতে প্রতিস্থাপন করা হয়।
আপনি উদ্ধৃতিগুলি সরিয়ে ফেলতে পারেন , যেহেতু ~
পথের একমাত্র চরিত্র ~/bin
যা শেলটির প্রসারণ ঘটায় এবং আমরা এই ক্ষেত্রে প্রসারণ চাই। শেল সঞ্চালন করা হবে না টিল্ড সম্প্রসারণের ফলাফলে কোনও প্রসারণও, ব্যাশ 4 অন্তত , উবুন্টু সব বর্তমান বা দূরবর্তী অবস্থান থেকে সাম্প্রতিক রিলিজ যা আছে । আপনার বাড়ির ডিরেক্টরিতে ফাঁকা জায়গার মতো অস্বাভাবিক অক্ষর থাকলেও ঠিক আছে।
অথবা আপনি ব্যবহার করতে পারেন $HOME
পরিবর্তে এর ~
কারণ প্যারামিটার সম্প্রসারণ শুধুমাত্র দ্বারা, ডবল কোট দ্বারা দমন করা হয় না একক উদ্ধৃতি । ডবল কোট না করে নিশ্চিত করুন যে প্রসারিত মান নিজেই কোনও প্রসারণও সাপেক্ষে, নয় তাই শব্দ বিভাজন বা ফাইলের নাম সম্প্রসারণ সৃষ্টি হবে না। সুতরাং $HOME
এমনকি অদ্ভুত নামে ডিরেক্টরি, খুব সাথে কাজ করে, তাই যতদিন আপনি উদ্ধৃতি চিহ্ন রাখা।
cd '~'
হয় -bash: cd: ~: No such file or directory
।
~
প্যারামিটার বিস্তারের অংশ নয়।