লুপের জন্য লুপ ভেরিয়েবল ত্রুটি


10

আমি যখন পছন্দ মত ব্যবহার করছি

 for i in 1 2 3 4 5 

তারপরে আমার ফাইলটির #!/bin/shশীর্ষে রয়েছে ।

কিন্তু আমি যখন ব্যবহার করছি

for(( i = 0; i<=5; i++))

তাহলে এটি ত্রুটি দেখাচ্ছে showing

Syntax error: Bad for loop variable

এবং আমি শেবাং অপসারণ করার সময় সঠিকভাবে চলমান। এর পিছনে কারণ আমাকে বলুন।

উত্তর:


11

for(( i = 0; i<=5; i++))বাশ নির্দিষ্ট এবং এটি প্লেইন বোর্ন শেল ( /bin/sh) দিয়ে কাজ করে না ।

আপনি যদি শেবাং অপসারণ করেন তবে স্ক্রিপ্টটি আপনার বর্তমান শেল (যা সম্ভবত বাশ) দ্বারা চালিত হয় তাই এটি কার্যকর হয়।

প্রতিস্থাপন #!/bin/shসঙ্গে #!/bin/bashকুঁড়েঘর কাজ করা।


shমোডে এটি করার কোনও উপায় আছে ? ধন্যবাদ!
জিয়াদ্দিন সাদিগোভ

2
i=0; while [ $i -le 5 ]; do echo $i; i=$((i+1)); done
ফ্লোরিয়ান ডিয়েচ

1
আমি ইতিমধ্যে # বাশ ব্যবহার করি এবং কাজ করে না
বিজি ব্রুনো

2
for(( i = 0; i<=5; i++))

এই ধরণের লুপটি কেবল বাশ শেলের উপরই চলে। সুতরাং, আপনি যদি এটি চালাতে চান তবে এই আদেশটি ব্যবহার করে দেখুন:

$bash filename.sh

আমি মনে করি এটি ভাল কাজ করবে। এবং এটি একটি দেখুন ।


1

Sh কমান্ডের পরিবর্তে ./ ব্যবহার করে এই সমস্যাটি সমাধান করেছি। উদাহরণস্বরূপ যদি আপনি এটির sh test.shপরিবর্তে কেবল আপনার কমান্ডটি তৈরি করেন ./test.shএবং সম্ভবত সমস্যাটির সমাধান হবে।


0

এটি আপনার সমস্যার সমাধান হতে পারে এটি চেষ্টা করে দেখুন

#!/bin/bash
j=0
for (( i=1; i <= 5; i++ ))
do
 echo "the loop is runing $i time: and value of j is $j"
 j=`expr $j + 1`
done
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.