আমি একটি স্ক্রিপ্ট একটি আবর্তন অ্যানিমেশান সৃষ্টি চরিত্র ব্যবহার করার জন্য খোঁজ করছি /
, -
, |
এবং \
।
আপনি যদি এই অক্ষরগুলির মধ্যে অবিচ্ছিন্নভাবে স্যুইচ করেন তবে এটি দেখতে তার ঘোরার মতো হওয়া উচিত। এটি কিভাবে করবেন?
আমি একটি স্ক্রিপ্ট একটি আবর্তন অ্যানিমেশান সৃষ্টি চরিত্র ব্যবহার করার জন্য খোঁজ করছি /
, -
, |
এবং \
।
আপনি যদি এই অক্ষরগুলির মধ্যে অবিচ্ছিন্নভাবে স্যুইচ করেন তবে এটি দেখতে তার ঘোরার মতো হওয়া উচিত। এটি কিভাবে করবেন?
উত্তর:
সেই স্ক্রিপ্টটি ব্যবহার করুন:
#!/bin/bash
chars="/-\|"
while :; do
for (( i=0; i<${#chars}; i++ )); do
sleep 0.5
echo -en "${chars:$i:1}" "\r"
done
done
while
লুপ অসীম চালায়। for
লুপ রান দেওয়া স্ট্রিং এর প্রতিটি অক্ষর নালা $chars
। echo
একটি ক্যারিজ রিটার্ন সহ \r
, তবে লাইন ব্রেক ছাড়াই চরিত্রটি মুদ্রণ করে -n
। -e
শক্তি যেমন পালানোর ক্রমগুলি ব্যাখ্যা করতে প্রতিধ্বনি করে \r
। প্রতিটি পরিবর্তনের মধ্যে 0.5 সেকেন্ডের বিলম্ব হয়।
echo
... তবে অবশ্যই printf
কাজ করে। ^^
এখানে একটি উদাহরণ ব্যবহার করা হচ্ছে \b
যা টার্মিনাল এমুলেটরকে একই অক্ষরটিকে বারবার ওভাররাইট করা চালিয়ে যাওয়ার জন্য কার্সারকে একটি কলামকে বাম দিকে সরিয়ে নিতে বলে।
#!/usr/bin/env bash
spinner() {
local i sp n
sp='/-\|'
n=${#sp}
printf ' '
while sleep 0.1; do
printf "%s\b" "${sp:i++%n:1}"
done
}
printf 'Doing important work '
spinner &
sleep 10 # sleeping for 10 seconds is important work
kill "$!" # kill the spinner
printf '\n'
আরও জানতে বাশফাক्यू 34 দেখুন।
spinner &
, আমি spinner_pid=$!
kill $spinner_pid &>/dev/null
tput civis #hide cursor
এবংtput cnorm #show cursor
যেহেতু আপনি স্পষ্টভাবে ব্যাশ চাইছেন না, মাছের শেলের জন্য একটি ছোট প্লাগ , যেখানে এটি সুন্দরভাবে সমাধান করা যেতে পারে আইএমও:
set -l symbols ◷ ◶ ◵ ◴
while sleep 0.5
echo -e -n "\b$symbols[1]"
set -l symbols $symbols[2..-1] $symbols[1]
end
এই ক্ষেত্রে, symbols
একটি অ্যারে ভেরিয়েবল, এবং বিষয়বস্তু যদি এটি ঘোরানো / স্থানান্তরিত $symbols[2..-1]
হয় তবে সমস্ত প্রবেশিকা কিন্তু প্রথম first
printf "%s\r" "${chars:$i:1}"
?