আমার কাছে একটি ছোট স্ক্রিপ্ট রয়েছে যা কেবল বর্তমান তারিখটি নিয়ে আসে, পিএইচপি স্ক্রিপ্ট চালায় এবং আউটপুট (এবং ত্রুটিগুলি) বর্তমান তারিখ সম্বলিত একটি ফাইল নামকে পুনর্নির্দেশ করে।
DATE=$(date +"%Y%m%d")
FILE="log/${DATE}.log"
php -q script.php >> $FILE 2>&1
আমি যখন আমার স্থানীয় মেশিনে এই স্ক্রিপ্টটি চালিত করি (উইন্ডোজ,, অ্যাপ্টানা আইডিই), পিএইচপি স্ক্রিপ্টটি ভাল কাজ করে এবং লগফাইলে প্রত্যাশিত ফাইলের নাম থাকে, যেমন 20140502.log।
তবে আমি যখন স্ক্রিপ্টটি আমার দূরবর্তী মেশিনে এসএফটিপি-এর মাধ্যমে চাপি এবং সেই স্ক্রিপ্টটি কার্যকর করি তখন ফাইলের নামটি দেখতে এই রকম হয়:
20140502?.log?
সমস্যাটা কি হতে পারে? এটি কী কোনও এনকন্ডিং ত্রুটি (যেমন এসএফটিপি আপলোডগুলির জন্য এনকোডিংটি এএনএসআইআই, যেখানে ইউটিএফ -8 প্রত্যাশিত)? নাকি আমাকে স্ক্রিপ্টে নিজেই কিছু পরিবর্তন করতে হবে?
সিস্টেম / শেল সম্পর্কে তথ্য:
[foo@bar path]$ sh --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
মজার ঘটনা: যদি সেই লিপিটি কোনও ক্রোনজব দ্বারা ডাকা হয়, তবে প্রশ্ন চিহ্নগুলি ঘটে না। আমি নিজে স্ক্রিপ্টটি চালনা করি তবেই।
LANG=en_US.UTF-8।
2>&1 >> $FILE) স্টার্মারকে টার্মিনালে প্রেরণ করে এবং ফাইলটিতে স্টাডআউট পাঠায়? আপনি যদি >> $FILE 2>&1
?নির্দেশ করে যে কোনও চরিত্র প্রদর্শিত হতে পারে না। অবশ্যই এনকোডিং পার্থক্য মত শোনাচ্ছে। আপনি আমাদের আউটপুট দিতে পারেনenv|grep -E '(LC|LANG)'?