কখনও কখনও আমাকে পাঠ্য লিখতে হবে এবং তারপরে সেই পাঠ্যটিকে অন্য কমান্ডে পাইপ করতে হবে। আমার স্বাভাবিক ওয়ার্কফ্লো এরকম কিছু যায়:
vim
# I edit and save my file as file.txt
cat file.txt | pandoc -o file.pdf # pandoc is an example
rm file.txt
আমি এই জটিল এবং ব্যাশ স্ক্রিপ্টিং শিখতে চাইছি এমন একটি কমান্ড লিখে প্রক্রিয়াটি আরও সহজ করে তুলতে চাই যা কোনও সম্পাদককে চালিত করে এবং সম্পাদক যখন সম্পাদকের সম্পাদনার স্টপআউট বন্ধ করে দেয়। তাহলে আমি কমান্ডটি চালাতে সক্ষম হব quickedit | pandoc -o file.pdf
।
আমি নিশ্চিত না যে এটি কীভাবে কাজ করবে। আমি ইতিমধ্যে উপরে উল্লিখিত ওয়ার্কফ্লো প্লাস কিছু সংযোজন অনুসরণ করে এটি স্বয়ংক্রিয় করতে একটি ফাংশন লিখেছি। এটি ফাইলের নাম হিসাবে কাজ করতে একটি এলোমেলো স্ট্রিং উত্পন্ন করে এবং ফাংশনটি চালিত হওয়ার পরে এটি ভিমে চলে যায়। যখন ব্যবহারকারী ফাইল সংরক্ষণ করে ভিএম থেকে প্রস্থান করে, ফাংশনটি কনসোলে ফাইলটি মুদ্রণ করে এবং তারপরে ফাইলটি মুছে দেয়।
function quickedit {
filename="$(cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-f0-9' | head -c 32)"
vim $filename
cat $filename
rm $filename
}
# The problem:
# => Vim: Warning: Output is not to a terminal
আমি শীঘ্রই যে সমস্যার মুখোমুখি হয়েছি তা হ'ল আমি যখন quickedit | command
ভিমের মতো কিছু করি তখন নিজেই সম্পাদক হিসাবে ব্যবহার করা যায় না কারণ সমস্ত আউটপুট পাইপের সাথে সীমাবদ্ধ থাকে।
আমি ভাবছি যে এটির কোনও quickedit
কার্যকারিতা আছে কিনা, যাতে আমি আমার ফাংশনের আউটপুটটি পাইপ করতে পারি । সাবপটিমাল বিকল্পটি হ'ল পৃথক সম্পাদককে চালিত করা, উচ্চারণের পাঠ্যটি বলুন, তবে আমি সত্যিই টার্মিনালে থাকতে চাই।
mktemp
উচিত ।
:w !pandoc -o file.pdf
? (দ্রষ্টব্য: মধ্যে স্থানw
এবং!
অপরিহার্য।)