আমি যখন আমার দূরবর্তী মেশিনে স্ক্রিপ্ট চালনা করি তখন ফাইলের নামটিতে প্রশ্ন চিহ্ন কেন থাকে?


10

আমার কাছে একটি ছোট স্ক্রিপ্ট রয়েছে যা কেবল বর্তমান তারিখটি নিয়ে আসে, পিএইচপি স্ক্রিপ্ট চালায় এবং আউটপুট (এবং ত্রুটিগুলি) বর্তমান তারিখ সম্বলিত একটি ফাইল নামকে পুনর্নির্দেশ করে।

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)

মজার ঘটনা: যদি সেই লিপিটি কোনও ক্রোনজব দ্বারা ডাকা হয়, তবে প্রশ্ন চিহ্নগুলি ঘটে না। আমি নিজে স্ক্রিপ্টটি চালনা করি তবেই।


সাধারণত ?নির্দেশ করে যে কোনও চরিত্র প্রদর্শিত হতে পারে না। অবশ্যই এনকোডিং পার্থক্য মত শোনাচ্ছে। আপনি আমাদের আউটপুট দিতে পারেন env|grep -E '(LC|LANG)'?
0xC0000022L

@ 0xC0000022L আউটপুট LANG=en_US.UTF-8
গটলিয়েব নটসনাবেল

অস্পষ্ট হওয়ার জন্য দুঃখিত আমি উভয় প্রান্তে আউটপুট বোঝায়।
0xC0000022L

অনুপস্থিতির জন্য দুঃখিত ... দুর্ভাগ্যক্রমে এই আদেশটি উইন্ডোজটিতে কিছুই আউটপুট দেয় না: /
গটলিয়েব নটসনাবেল

1
আপনি কি অবগত আছেন যে পুনর্নির্দেশের এই ক্রমটি ( 2>&1 >> $FILE) স্টার্মারকে টার্মিনালে প্রেরণ করে এবং ফাইলটিতে স্টাডআউট পাঠায়? আপনি যদি >> $FILE 2>&1
স্ট্যাডারটিও

উত্তর:


17

আপনার কাছে সম্ভবত লাইনের শেষে কিছু মুদ্রণযোগ্য অক্ষর রয়েছে (যেমন উইন্ডোজ থেকে সিআরএলএফ), চালান:

cat -A scriptname

রিমোট মেশিনে, এটি আপনাকে আপনার স্ক্রিপ্টের সমস্ত অক্ষর প্রদর্শন করবে। তারপরে, আপনি ইউনিক্সের মতো বিন্যাসে চলমান রূপান্তর করতে পারেন

dos2unix scriptname

3

উত্তরটি চেষ্টা করার পরে এটি সংশোধন করার জন্য নোটপ্যাড ++ পাওয়া গেছে Found

ক্যাট -এ স্ক্রিপ্টনাম>

ডস 2 ইউনিক্স স্ক্রিপ্টনাম

রূপান্তর করার চেষ্টা করার সময় এটি এখনও ত্রুটিগুলি উপস্থাপন করে।

নোটপ্যাড ++ এর মাধ্যমে সম্পাদনা মেনু / ইওএল রূপান্তর / ইউনিক্স / ওএসএক্স ফর্ম্যাটে বিকল্প রয়েছে।

এখনও খুব শিখর একজন কিন্তু এই পদ্ধতিটি আমার সমস্যা সমাধান করেছে, তবে পূর্ববর্তী সমাধানটি সমস্যাটি কোথায় তা খুঁজে পেতে সহায়তা করেছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.