ইউনিক্স স্ক্রিপ্ট: তারিখের ব্যবহার এবং এর জন্য ব্যবহার


0

মিনিটনিউ = date +%M;

for ((i=2;i<=57;i+=5))
do
        if [ "$MinuteNow" == "$i" ]; then
                *************
        fi
done

সমস্যাটি ২ এবং for এর জন্য, তারিখের কমান্ডের আউটপুট 02 এবং 07 হয় তবে পরিবর্তনশীল $ i হ'ল 2 এবং 7 ... আমি কেবল এই 2 টি পরিবর্তনের জন্য একটি শর্ত যুক্ত করার চেষ্টা করেছি, তবে এটি লুপটি বুগ করছে ...

আপনি আমাকে একটি টিপ দিতে পারেন দয়া করে?


1
ইউনিক্স একটি অপারেটিং সিস্টেম। তিনি বলেন, "কিভাবে আমি একটি ইউনিক্স স্ক্রিপ্ট না ক্রস" মত হল "আমি কীভাবে উইন্ডোজ প্রোগ্রামিং ভাষা কি করবেন ক্রস" বলার ছাড়া যা আপনি ব্যবহার শত ভাষার।
— মাধ্যাকর্ষণ

উত্তর:


2

সংখ্যার তুলনা করতে "-eq" ব্যবহার করুন, তাহলে আপনার এই সমস্যাটি হবে না:

if [ "$MinuteNow" -eq "$i" ]; then

এটা করা উচিত।

(অন্যান্য অনেকগুলি সম্ভাবনা রয়েছে, simple {মিনিটনিউ # 0} আর একটি সাধারণ সরল, তবে আমি == এর পরিবর্তে সঠিক অপারেটর -eq ব্যবহার করা ভাল)


1

বাশ-এ, আপনাকে স্ট্রিংটি 10 ​​টি বেসে জোর করতে হবে:

if (( 10#$MinuteNow == i ))    # you can omit the dollar sign on bare variables in this context

বোর্ন শেল (sh) এ:

if [ $MinuteNow -eq $i ]

Zsh বা ksh93 এ:

if (( MinuteNow == i ))    # you can omit the dollar sign on bare variables in this context


0

ইন bash, ব্যবহার:

(($ মিনিটনিউ == $ i))

যেমন:

যদি (($ মিনিটনিউ == $ i)); তারপর

তাহলে shসামঞ্জস্য প্রয়োজন, ব্যবহার করুন:

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