صفر و یک - برنامه نویسی - لینوکس

دست نوشته های شخصی من در مورد نرم افزار، سیستم عامل و برنامه نویسی لینوکس

صفر و یک - برنامه نویسی - لینوکس

دست نوشته های شخصی من در مورد نرم افزار، سیستم عامل و برنامه نویسی لینوکس

لیدورا یک وبلاگ تخصصی برنامه نویسی یا لینوکس نیست. بیشتر محلیه برای ثبت چیزهایی که قراره بیشتر از یه بار خونده بشن. اگه به درد شما هم خورد که زکات دانش ما پرداخت شده، شکر.

آخرین نظرات

نویسندگان

اسکریپت پخش تصادفی فایل‌های تصویری

سه شنبه, ۱۷ آذر ۱۳۹۴، ۰۲:۰۴ ب.ظ

Shell Script

من آدم تنبلیم، خیلی تنبل. دوباره تنبلی باعث شد که یکی از کارهای تکراری که زحمت زیادی نداشت رو بصورت کامل بی‌زحمتش(اتوماتیک) کنم.

 

سناریو : من یه پوشه دارم که یه سری کلیپ تصویری توشه و روزی یکی دوبار کلیپ‌هایی که دوست دارم رو تماشا می‌کنم. چون دوست دارم یکی دو تا کلیپ رندوم ببینم کاری که تا به امروز می‌کردم این بود که همشون رو توی smplayer ایمپورت می‌کردم و لیست رو بصورت تصادفی پخش می‌کردم.

سولوشن : کار خیلی سادست اول باید تعداد فایل‌ها رو بگیریم، خب می‌شه یه ls گرفت و خروجیش رو پایپ کرد به wc

/r/m/a/S/M/Show » ls -l | wc -l
93


خب تا الان فهمیدیم ۹۳ تا فایل داریم. قدم بعدی تولید اعداد تصادفیه. تابع RANDOM بش برای همین کار نوشته شده.

/r/m/a/S/M/Show » echo $RANDOM
613
/r/m/a/S/M/Show » echo $RANDOM
28332
/r/m/a/S/M/Show » echo $RANDOM
17461


این‌طوری می‌شه بهش گفت یه عدد تا قبل از ۹۳ بده

($RANDOM%93)+1

 

فقط یه حلقه‌ی تکرار می‌مونه که اونم کاری نداره. باید یه ایندکس بذاریم و تا مساوی عدد اتفاقیمون شد اسم فایل رو بگیریم.

 

این هم اسکریپت:

#!/usr/bin/bash

cd ‍~/Videos

listcount=$(ls -l | wc -l)

# تعداد فایل‌های دایرکتوری
filecount=$((listcount-1))

# تولید عدد تصادفی
i=$((($RANDOM%filecount)+1))

index=0
for file in *
do
        index=$(($index + 1))
        if [[ ("$index" ==  "$i") ]]; then
                filename=$file
        fi
done

# دستور شما برای باز کردن فایل
mplayer $filename

من توی دستور آخر از mplayer استفاده کردم. شما می‌تونید با تغییر این خط با انواع فایل‌ها مثل موسیقی و متنی و غیره هم کار کنید.
 

ساده بود ولی جالب. الان توی ترمینال می‌نویسم playShow و تمام :) . فقط اگه توی اسم فایل‌هاتون فاصله باشه دیگه کار نمیکنه که خودتون درستش کنید. تمام اسامی فایل‌های من بدون فاصله هستند پس نیازی نبود.

 

نظرات  (۳)

ممنون از مطلبتون، انتخاب عدد تصادفی رو بلد نبودم که یاد گرفتم😊
ولی برای این‌که بشه فایل‌هایی رو که اسمشون دارای فاصله هست بشه استفاده کرد کافیه متغیری که توش اسم فایل قرار داره رو بین دوتا " فراخوانی کنین:
filename="$file"
mplayer "$filename"

موفق باشین.
پاسخ:
ممنون بابت جوابتون :)
اصولا این روحیه ی تنبلی که میگی روحیه ی خوبیه توی مخصوصا اسکریپت نویسی... منم همینطورم... ی جورایی راز پیشرفت یک اسکریپت نویس در همینه...
موفق باشی
پاسخ:
خخخ موافقم :)
ممنون که سر زدی مرتضی جان
عالی
پاسخ:
سپاس.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی