আমার কাছে একটি ছোট স্ক্রিপ্ট রয়েছে যা কেবল বর্তমান তারিখটি নিয়ে আসে, পিএইচপি স্ক্রিপ্ট চালায় এবং আউটপুট (এবং ত্রুটিগুলি) বর্তমান তারিখ সম্বলিত একটি ফাইল নামকে পুনর্নির্দেশ করে।
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)'
?