একটি ভেরিয়েবলকে একটি মূল্য নির্ধারণের সময় "এসআরটি: কমান্ড পাওয়া যায় নি"


9

আমি "টেস্ট.শ" নামে একটি শেল স্ক্রিপ্টে নিম্নলিখিত লাইনগুলি প্রবেশ করলাম:

#!/bin/bash
echo Hello World
STR=”Hello Again
echo $STR

এক্সিকিউটেবল chmod পরে, আমি সঙ্গে স্ক্রিপ্ট চালানো ./test.sh। যাইহোক, আমি বার্তা পেতে

./test.sh: line 3  STR: Command not found

আমি কি ভুল করছি?


1
টেরডনের উত্তর কি আপনার প্রশ্ন সমাধান করেছে? যদি তা না হয় তবে ঘটনাক্রমে আপনার পরিবর্তনশীল কার্যভারের চারপাশে ফাঁকা স্থান থাকতে পারে।
অরোনিকাল

@ ভোকার আমার পরামর্শের ভিত্তিতে কেবল একটি স্টাইলিস্টিক মন্তব্য : আমি মনে করি কোড ব্লকের পরিবর্তে ত্রুটি বার্তাগুলির জন্য ব্লককোট ব্যবহার করা ভাল; শেষে, এটি কোড নয় তবে কিছু পাঠ্য যা ব্যাশ ইন্টারপ্রিটার ফিরিয়ে দিচ্ছে।
ফেডোরকিই

@ ফেডরকিই কেন? উক্তি ব্লক বিন্যাস সংরক্ষিত হয় না, তারা বিশেষ অক্ষর ব্যাখ্যা (যেমন *, _, #) markdown, এবং স্ক্রিন রিডার সফটওয়্যার দ্বারা ভিন্নভাবে দেখা যায়। আমি মনে করি যে কোনও একটি কম্পিউটার দ্বারা প্রদত্ত বা প্রাপ্ত যে কোনও কিছুই কোড ব্লকে থাকা উচিত। আপনি কখনই জানেন না কখন সঠিক বিন্যাসটি প্রাসঙ্গিক হতে পারে। বিশেষত যখন এমন জিনিস নিয়ে কাজ করার সময় যেখানে ইউনিকোড কার্যকর হয়।
টেরডন

@ স্টারডন এটি সত্যিই কেসের উপর নির্ভর করে এবং লগ / সতর্কতা / ত্রুটি বার্তাগুলির জন্য ফর্ম্যাট যুক্ত করার অনুরোধ রইল যা শব্দ মোড়ানোর অনুমতি দেয় এবং নিউলাইনগুলি সংরক্ষণ করে । আমার কাছে, যদি এটি কেবল এই ক্ষেত্রেটির মতো একটি লাইন হয় তবে আমি কোট ব্লকগুলি পছন্দ করি কারণ কোড কী এবং কোনটি ত্রুটিগুলি তা বোঝা সহজ করে তোলে।
ফেডরকিই

@ ফেডরকিই আমি অনুমান করি আমাদের এটি মেটাতে নিয়ে যাওয়া উচিত তবে আমি যখনই কম্পিউটার দ্বারা পড়া বা উত্পাদিত কোনও বার্তা পোস্ট করি তখনই আমি স্থির-প্রস্থের ফন্ট এবং সঠিক বিন্যাসের পুনরুত্পাদন পছন্দ করি।
টেরডন

উত্তর:


20

আপনি এই স্ক্রিপ্টটি তৈরি করতে কী ব্যবহার করছেন? আপনার প্রশ্নের মধ্যে থাকা উদ্ধৃতি অক্ষরগুলি ভুল। এগুলি নিয়মিত ডাবল কোট ( ") নয় । নিয়মিত উদ্ধৃতিগুলি হ'ল:

$ uniprops '"' | head -1
U+0022 "› \N{QUOTATION MARK}

আপনার যখন:

$ uniprops '”' | head -1
U+201D ‹”› \N{RIGHT DOUBLE QUOTATION MARK}

সুতরাং, কেবল নিয়মিত উদ্ধৃতি ব্যবহার করুন এবং আপনি ভাল থাকবেন:

#!/bin/bash
echo Hello World
STR="Hello Again"
echo "$STR" ## Get into the habit of ALWAYS quoting your variables as well

উত্তরের জন্য ধন্যবাদ টেরডন। ফাইলটিতে ডাবল উক্তিগুলি সঠিক, পোস্টটি একটি ইমেল থেকে।
জে সিলভার

1
unipropsশান্ত দেখায়. আমি পৃষ্ঠাটি পেয়েছি (এটি কি আমাদের নিজস্ব tchrist?)। আমাকে কি উত্স থেকে ডাউনলোড করতে হবে, বা এটি কোনও প্যাকেজ ম্যানেজারে পাওয়া যায়? E: Unable to locate package uniprops
ট্রিগ

1
আমি পার্ল বেশি ব্যবহার করি না (সবেমাত্র) আমি ইউনিকোড সম্পর্কে ন্যূনতম চেয়ে আরও কিছু জানতে চাই ।
ট্রিগ

1
@ টিআরআইজি ভাল, উবুন্টুতে, এটি যতটা সহজ sudo apt-get install cpanminus; sudo cpanm Unicode::Tussleএবং তারপরে আপনার unipropsকমান্ডটি রয়েছে। অবশ্যই, টক্রিস্ট জঘন্য জিনিসটি লিখেছেন যাতে আপনি পাশাপাশি তাকে
আড্ডায়

1
আমি দুঃখের সাথে এই ধরণের বাজে কথা সব সময় চালিয়ে যাচ্ছি। আমার নিয়োগকর্তার একটি নির্দিষ্ট উইকি সিস্টেমে হাইফেন-বিয়োগ -U + 002D হাইফেন ইউ +২০ ( বা অনুরূপ ) অনুবাদ করার অভ্যাস আছে বলে মনে হয় । তারপরে uname ‐aকাজ করা বন্ধ করার মতো বিষয়গুলি : - /। ইমেল ক্লায়েন্টদের প্রায়শই একই রকম কৃপণ অভ্যাস থাকে - বিশেষত এইচটিএমএল ফর্ম্যাট ব্যবহার করার সময় - প্লেইন-পাঠ্য ইমেলগুলি পছন্দ করার জন্য আরও একটি ভাল কারণ।
ডিজিটাল ট্রমা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.