ব্যাশ স্ক্রিপ্টে আমি অন্য প্রোগ্রামার থেকে পেয়েছি, কিছু লাইন দৈর্ঘ্যে 80 টি কলাম অতিক্রম করেছে। পরের লাইনে রেখাটি অব্যাহত রয়েছে তা নির্দেশ করার জন্য লাইনে চরিত্র বা জিনিসটি কী যুক্ত করা হবে?
উত্তর:
চরিত্রটি একটি ব্যাকস্ল্যাশ \
থেকে ব্যাশ ম্যানুয়াল :
ব্যাকস্ল্যাশ অক্ষর '\' পরবর্তী অক্ষর পড়ার জন্য এবং লাইন ধারাবাহিকতার জন্য কোনও বিশেষ অর্থ মুছে ফেলতে ব্যবহৃত হতে পারে।
^M। সমস্যাটি মনে হয় যে স্ক্রিপ্টটি আমাকে উইন্ডো ব্যবহার করে এমন কেউ দিয়েছিল। একটি তাড়াতাড়ি dos2unixএটি ঠিক করা হয়েছে :)
পরবর্তী কমান্ডটি পরবর্তী লাইনে চালিয়ে যাওয়ার জন্য আপনি সাধারণভাবে, একটি লাইনের শেষে একটি ব্যাকস্ল্যাশ ব্যবহার করতে পারেন। তবে, এমন কিছু ক্ষেত্রে রয়েছে যেখানে কমান্ডগুলি সুস্পষ্টভাবে অব্যাহত থাকে, যথা লাইনটি টোকেন দিয়ে আইনীভাবে কোনও কমান্ডকে শেষ করতে না পারার পরে শেষ হয়। সেক্ষেত্রে শেলটি জানে যে আরও আসছে, এবং ব্যাকস্ল্যাশ বাদ দেওয়া যেতে পারে। কিছু উদাহরণ:
# In general
$ echo "foo" \
> "bar"
foo bar
# Pipes
$ echo foo |
> cat
foo
# && and ||
$ echo foo &&
> echo bar
foo
bar
$ false ||
> echo bar
bar
ভিন্ন, তবে সম্পর্কিত, উদ্ধৃতিগুলির ভিতরে অন্তর্নিহিত ধারাবাহিকতা। এই ক্ষেত্রে, ব্যাকস্ল্যাশ ছাড়াই , আপনি কেবল স্ট্রিংয়ে একটি নতুন লাইন যুক্ত করছেন।
$ x="foo
> bar"
$ echo "$x"
foo
bar
ব্যাকস্ল্যাশ দিয়ে আপনি আবার লজিকাল লাইনটিকে একাধিক লজিকাল লাইনে বিভক্ত করছেন।
$ x="foo\
> bar"
$ echo "$x"
foobar
[[- ]]শর্ত, কিন্তু অন্যরা নেই, এবং আমি আউট নিয়ম চিন্তা করার চেষ্টা করছি।
\কাজ করে @ গিলিয়ামের উত্তর এবং @ জর্জের মন্তব্য পরিষ্কারভাবে এই প্রশ্নের উত্তর দেয়। এখানে আমি ব্যাখ্যা করছি কেন The backslash has to be the very last character before the end of line character.এই আদেশটি বিবেচনা করুন:
মাইএসকিএল-রুট -হ্লোক্যালহোস্ট
এর পরে যদি কোনও স্থান থাকে \তবে লাইন ধারাবাহিকতা কার্যকর হবে না। কারণটি হ'ল \ পরবর্তী অক্ষরের বিশেষ অর্থ সরিয়ে দেয় যা একটি স্থান যা অদৃশ্য লাইন ফিড অক্ষর নয়। লাইন ফিড অক্ষর স্থানটির পরে \এই উদাহরণে নেই।