এই ধাঁধাটি সমাধান করার এখন সময় এসেছে যা বছরের পর বছর ধরে আমাকে বিরক্ত করছে ...
আমি এটি সময়ে সময়ে মিলিত হয়েছি এবং ভেবেছিলাম এটিই যাওয়ার উপায়:
$(comm "$(arg)")
এবং ভেবেছিলাম আমার মতামত অভিজ্ঞতার দ্বারা দৃ strongly়ভাবে সমর্থিত। তবে আমি আর নিশ্চিত নই। শেলচেকও তার মন তৈরি করতে পারে না। এটি উভয়:
"$(dirname $0)"/stop.bash
^-- SC2086: Double quote to prevent globbing and word splitting.
এবং:
$(dirname "$0")/stop.bash
^-- SC2046: Quote this to prevent word splitting.
পিছনে যুক্তি কি?
(এটি শেলচেক সংস্করণ 0.4.4, বিটিডাব্লু।)
"$(dirname "$0")"/stop.bash
? মনে হচ্ছে কাজ করছে ... গল্পটা কী?
shell_level_1 $(shell_level_2) shell_level_1
:: আপনি যখন $(....)
শেলের একটি "সাবলেভিল" প্রবেশ করান, তবে আপনি এটিতে লিখতে পারবেন যেন আপনি প্রাথমিক স্তরে ছিলেন (যেমন, আপনি সরাসরি , এর "
পরিবর্তে সরাসরি লিখতে পারেন \"
)। যেমন: touch "/tmp/a file" ; echo "its size is: $(find "/tmp/a file" -ls | awk '{print $5}) ..." : if you used backticks you'd have to
সন্ধান করুন / "/ টিএমপি / একটি ফাইল \" `এবং print \$5
। সঙ্গে $(...)
কোন প্রয়োজন: নতুন স্তর শেল আত্তীকরণ করে এবং আপনি সরাসরি লিখতে পারেন যেমন যদি আপনার ব্যাখ্যাকারী এখন খুব যে পর্যায়ে রয়েছে।