انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: بهنام … در 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
ممنونم.
-
درود
سادهترین راهکاری که به ذهنم میاد اینه که همین رو توی یه فایل بنویسین و به جای 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
-
سپاس فراوون. کارم با همین راهنمایی شما راه افتاد.
حالا میتونم تغییرات دیگه را خودم بدم و کارام سریعتر پیشبره.