বাশ কেন আমার নতুন লাইনের চরিত্রটি স্বীকৃতি দিচ্ছে না?


0

আমি প্রবেশের ক্রমটিকে বিপরীত করার জন্য একটি স্ক্রিপ্ট পাওয়ার চেষ্টা করছি (হ্যাঁ আমি জানি "ট্যাক" কমান্ড ইতিমধ্যে এটি করেছে) আমার স্ক্রিপ্টটি নীচে রয়েছে, প্রিন্ট এফ লাইন যা অ্যারের মান প্রিন্ট করে এবং তারপরে একটি নতুন লাইন অনুসরণ করবে, আমার নিউলাইনটি প্রিন্ট করবেন না এবং এটি সত্যিই বিরক্তিকর।

অ্যারের সূচক মানটি মুদ্রণের জন্য আমি লাইনটি অবিলম্বে অনুসরণ করে "\ n" এটিকে আলাদা করে দিয়ে প্রিন্টফ করার চেষ্টা করেছি, তবে এটিও কাজ করছে বলে মনে হয় না।

#!/bin/bash

a=()
while read line; do
    a+="$line"
done

for ((i = 0 ; i <= ${#a[@]} ; i++)); do
    printf "${a[$i]}\n"
done

উত্তর:


0

সমস্যাটি আপনার printfবিবৃতি নয়, পড়ার সময় আপনার অ্যাসাইনমেন্ট - আপনি কোনও উপাদানের মান নির্ধারণের সাথে অ্যারে সংযোজন সিনট্যাক্স মিশ্রণ করছেন । অ্যারেতে সংযোজন করতে, পরিবর্তে আপনাকে ব্যবহার করতে হবে। আপনি যদি প্রথম বন্ধনী ছাড়াই বাক্য গঠন ব্যবহার করতে চান, উদাহরণস্বরূপ, আপনি যে উপাদানটি পরিবর্তন করতে চান তার সূচি নির্দিষ্ট করতে হবে ।a+=("$line")a[5]="$line"

আপনি অ্যারে সম্পর্কিত আরও উদাহরণগুলি উদাহরণস্বরূপ এই স্ট্যাকোভলফ্লো ডকুমেন্টেশন লিঙ্কে (অংশটি "অ্যারে সংশোধন" পরীক্ষা করে দেখুন) খুঁজে পেতে পারেন

এছাড়াও মনে রাখবেন যে আপনার স্ক্রিপ্টটি বিপরীত ক্রমে লাইনগুলি মুদ্রণ করছে না। এটি করতে, আপনাকে forঅ্যারের শেষ থেকে শুরু পর্যন্ত পুনরাবৃত্তি করতে চক্রটি বিপরীত করতে হবে ।

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