আমি আমার কমান্ড লাইন প্রম্পট থেকে এই আদেশটি চালাতে পারি:
cp -r folder/!(exclude-me) ./
বর্তমান ডিরেক্টরিতে উল্লিখিত উপ-ডিরেক্টরি folder
বাদে সমস্ত বিষয় পুনরাবৃত্তভাবে অনুলিপি করতে exclude-me
। এটি ঠিক মতো কাজ করে। যাইহোক, আমি লিখেছি এমন ব্যাশ স্ক্রিপ্টে কাজ করার জন্য আমার এটি দরকার, যেখানে আমার এটি রয়েছে:
if [ -d "folder" ]; then
cp -r folder/!(exclude-me) ./
rm -rf folder
fi
তবে আমি যখন স্ক্রিপ্টটি চালাব:
bash my-script.sh
বুঝতে পেরেছি:
my-script.sh: line 30: syntax error near unexpected token `('
my-script.sh: line 30: ` cp -r folder/!(exclude-me) ./'
এবং কেন এটি কমান্ড প্রম্পট থেকে কাজ করে তা নিয়ে আমার ক্ষতি হচ্ছে তবে ঠিক একই লাইনটি ব্যাশ স্ক্রিপ্টে কাজ করে না।
env > file1
স্ক্রিপ্টে রান চালানোর চেষ্টা করল এবং কার্যকর করল./it
, এবং তারপরেenv > file2
এবংsource it
এই আশায় যে আমি এর মধ্যে একটি পার্থক্য খুঁজে পেয়েছিenv
, যা এটি নয়। আমি কীভাবে প্রোগ্রামের মাধ্যমে দুটি শেলের মধ্যে সমস্ত পার্থক্য তালিকাভুক্ত করতে পারি (এই ক্ষেত্রে ইন্টারেক্টিভ বনাম অ-ইন্টারেক্টিভ)?