আমার কাছে নিম্নলিখিত স্ক্রিপ্ট রয়েছে:
#!/bin/bash
set -x
if :; then
echo a
fi
যদি আমি চালানোর bash /tmp/file
, a
প্রতিধ্বনিত হয়, কিন্তু যদি আমি চালানোর source /tmp/file
, আমি পাবেন:
bash: /tmp/test: line 6: syntax error: unexpected end of file
আউটপুট:
knezi@holly tmp]$set -x; source /tmp/test; set +x
+ source /tmp/test
++ set -x
bash: /tmp/test: line 6: syntax error: unexpected end of file
+ set +x
knezi@holly tmp]$set -x; command source /tmp/test; set +x
+ set -x
+ command source /tmp/test
+ source /tmp/test
++ set -x
bash: /tmp/test: line 6: syntax error: unexpected end of file
+ set +x
knezi@holly tmp]$bash -c "source /tmp/test"
+ bash -c 'source /tmp/test'
++ :
++ echo a
a
knezi@holly tmp]$od -c /tmp/test
0000000 # ! / b i n / b a s h \n s e t
0000020 - x \n i f : ; t h e n \n \t e
0000040 c h o a \n f i \n
0000051
কমান্ডের আউটপুট shopt -p
এবং set -o
: http://pastebin.com/bsqc8aru
এর আউটপুট set
: http://pastebin.com/S9KpqZAL
declare -fp
কিছুই উত্পাদন করে না।
আমি ভেবেছি source
এটি একই রকম হয় bash
তবে নতুন সেশন শুরু করার পরিবর্তে বর্তমানের কোডটিতে কোড চালায়। কেউ আমাকে এই ত্রুটি ব্যাখ্যা করতে পারেন?
আমি ব্যাশ জিএনইউ ব্যাশ চালনা করছি, সংস্করণ 4.2.53 (1) -রিলেজ (x86_64-redhat-linux-gnu)।
$BASH_ENV
সেটটি কি ?
bash -c
আপনার প্রশ্নের সাথে কাজ করে যোগ করুন । তারপরে, আপনার ~/.bashrc
ফাইলের বিষয়বস্তু আমাদের দেখান , সেখানে সম্ভবত এমন কিছু রয়েছে যা জিনিসগুলি স্ক্রু করছে।