انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: بهنام … در 16 آذر 1397، 06:31 ب‌ظ

عنوان: درخواست اسکریپت ساده برای گرفتن آرگومان و اجرای دستورهای بش (حل شد)
ارسال شده توسط: بهنام … در 16 آذر 1397، 06:31 ب‌ظ
سلام. می‌شه لطف کنید اسکریپتی بنویسید که شش عدد (یک یا دو رقمی) از من بگیره و بجای ‎$a … ‎$f بذاره و این دستورها را اجرا کنه:cd ~/Desktop/temp
ffmpeg -i a.MP3 -i f.png -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="@Channel" -metadata:s:v comment="@Channel (Name)" o.MP3
ffmpeg -i o.MP3 -ss $a:$b:0 -t $c:0 ~/Public/01.mp3
ffmpeg -i o.MP3 -ss $d:$e:0 -t $f:0 ~/Public/02.mp3
rm *.MP3
ممنونم.
عنوان: پاسخ : درخواست اسکریپت ساده برای دستورات زیر
ارسال شده توسط: Silvio Dante در 16 آذر 1397، 07:27 ب‌ظ
درود
ساده‌ترین راهکاری که به ذهنم میاد اینه که همین رو توی یه فایل بنویسین و به جای a و b و c و ... 1 و 2 و 3 و ... قرار بدین. به این شکل:
#!/bin/bash                                                                                               
                                                                                                           
cd ~/Desktop/temp                                                                                         
ffmpeg -i a.MP3 -i f.png -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="@Channel" -metada\
ta:s:v comment="@Channel (Name)" o.MP3                                                                     
ffmpeg -i o.MP3 -ss $1:$2:0 -t $3:0 ~/Public/01.mp3                                                       
ffmpeg -i o.MP3 -ss $4:$5:0 -t $6:0 ~/Public/02.mp3                                                       
rm *.MP3       

اینجوری وقتی دارین اسکریپت رو اجرا می‌کنین آرگومان اولی که بهش می‌دین میشه $1، دومی میشه $2 و ... تا $6 .
یعنی اینجوری باید اجراش کنین:
./script.sh firstArgument secondArgument ...
راه دیگه هم استفاده از read هست که هم یکمی ممکنه بیشتر وقت بگیره (مخصوصا هنگام اجرا) و هم کد رو شلوغ‌تر کنه. اون هم به این شکل می‌شه:
#!/bin/bash                                                                                               
                                                                                                           
read -p "a: " a                                                                                           
read -p "b: " b                                                                                           
read -p "c: " c                                                                                           
read -p "d: " d                                                                                           
read -p "e: " e                                                                                           
read -p "f: " f                                                                                           
                                                                                                           
cd ~/Desktop/temp                                                                                         
ffmpeg -i a.MP3 -i f.png -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="@Channel" -metada\
ta:s:v comment="@Channel (Name)" o.MP3                                                                     
ffmpeg -i o.MP3 -ss $a:$b:0 -t $c:0 ~/Public/01.mp3                                                       
ffmpeg -i o.MP3 -ss $d:$e:0 -t $f:0 ~/Public/02.mp3                                                       
rm *.MP3   
عنوان: پاسخ : درخواست اسکریپت ساده برای دستورات زیر
ارسال شده توسط: بهنام … در 16 آذر 1397، 08:20 ب‌ظ
سپاس فراوون. کارم با همین راهنمایی شما راه افتاد.
حالا می‌تونم تغییرات دیگه را خودم بدم و کارام سریع‌تر پیش‌بره.