উদ্ধৃতি ভিতরে ওয়াইল্ডকার্ডস


32

এটি একটি সহজ হবে, তবে আমার স্মৃতিতে শেল স্ক্রিপ্টিং যখন ডাবল কোট ব্যবহার করে গ্লোব্বিং এবং ভেরিয়েবল প্রসারিত করতে দেয়।

তবে নিম্নলিখিত কোডে:

#!/bin/sh

echo *.sh
echo "*.sh"
echo '*.sh'

echo $LANG
echo "$LANG"
echo '$LANG'

আমি এই ফলাফল পেতে:

bob.sh redeployJboss.sh
*.sh
*.sh
en_US.utf8
en_US.utf8
$LANG

সুতরাং একক উদ্ধৃতি গ্লোব এবং ভেরিয়েবল সম্প্রসারণ রোধ করে কিন্তু ডাবল উদ্ধৃতি কেবল পরিবর্তনশীল সম্প্রসারণ এবং কোনও গ্লোববিংয়ের অনুমতি দেয়?

আমি কোন উদ্ধৃতি প্যাটার্ন গ্লোব করতে পারেন?

উত্তর:


26

আপনি সঠিক: গ্লোব্বিং কোনও একক বা ডাবল-কোটে কাজ করে না। তবে, আপনি ডাবল-উদ্ধৃত স্ট্রিংগুলি দিয়ে গ্লোববিংকে বিভক্ত করতে পারেন:

$ প্রতিধ্বনি "হ্যালো ওয়ার্ল্ড" * .শ "বিদায় বিশ্ব"
হ্যালো ওয়ার্ল্ড [ফাইলগুলির তালিকা] বিদায় বিশ্ব

6
অথবা এমনকি echo "$hello and $goodbye".*(একই "শব্দের সাথে" পরিবর্তনশীল বিস্তৃতি, স্পেস এবং একটি
গ্লোব মিশ্রিত করুন

1
গ্লোববিং এই ক্ষেত্রে কাজ করবে বলে মনে হয় না echo /path/to/file/*${variable},। একটি ইন্টারপোল্টেড ইমেল যুক্ত করার সময় আমি কীভাবে গ্লোব করব?
সিএমসিডিগ্রাগনকাই

2
@ সিএমসিডিগ্রাগনকাই echo "$FOLDER_PATH"/*.extensionআমার পক্ষে ভাল কাজ করেছেন, গৃহীত উত্তরের বিপরীতে আমাকে এবং এর মধ্যে থাকা শ্বেত স্থানটি সরিয়ে ফেলতে "হয়েছিল *। আশা করি এটা সাহায্য করবে.
লস্টবালুন হারিয়েছে

@ সিএমসিডিগ্রাগনকাই, @ লস্টবালুন আমি যখন নিম্নোক্ত প্যাটার্নগুলি ব্যবহার করি যখন আমি স্পেস থাকতে পারে এমন ভেরিয়েবলগুলির সাথে গ্লোব ব্যবহার করতে চাই:(cd "$FOLDER_PATH" && echo *.extension)
স্টিভেন ডার্নেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.