Ffmpeg สคริปต์เอ็มพี 4 ต้อง mp3

0

คำถาม

#!/bin/bash
for i in *.mp4
do
ffmpeg -i "$i" -ab 128k "${i%mp4}mp3"
done

นี่การประมวลผลกลุ่มภาพ converts ทุ*.เอ็มพี 4 แฟ้มในไดเรกทอรีปัจจุบันต้องการ mp3. ffmpeg ต้องการจะติดตั้งหรือถูกรวมอยู่ในนั้น distro. บางครั้งฉันไม่อยากให้ทุกสิ่งทุกอย่างใน CWD นกะลังเปลี่ยนศาสนา ฉันต้องการจะแก้ไขสคริปต์นี้ดังนั้น.

  1. ถ้าไม่มีอาร์กิวเมนต์สคริปต์มันไม่มีอะไร
  2. ถ้าการเถียงกันของพวก*.มันเอ็มพี 4 converts ทั้งหมดเอ็มพี 4 นmp3
  3. ถ้าการเถียงกันของพวกชื่อแฟ้มด้วยมันเอ็มพี 4 เดียวที่ converts ว่าหนึ่งแฟ้มชื่อแฟ้มด้วยmp3

ฉันสามารถการความช่วยเหลือนิดหน่กับว่าตบสคริปต์กดรหัสนี่ใช่ไหม เมื่อกี้! ไม่แน่ใจว่าอ่านหนังสืออาร์กิวเมนต์ออกจากบรรทัดคำสั่งและทำให้พวกเขาอยู่ในสคริปต์

$12 เหรียญ? ก็แค่แสดงให้ฉันหนึ่งตัวอย่าง ฉันควรจะเป็นคนทำคนอื่น

bash ffmpeg script
2021-11-23 16:45:49
1

คำตอบที่ดีที่สุด

0

คุณสามารถปล่อยให้เชลล์รับมือกับการ expansions และจากนั้นอยู่ในสคริปต์ของคุณเรื่องที่ positional พารามิเตอร์ เธอทำแบบนั้นได้ด้วย

for i in "$@"

หรือแม้แต่น้อยแค่

for i

เป็นที่ฟฤติกรรมโดยปริยายคือต้องวงจร positional พารามิเตอร์

ดังนั้นของสคริปต์จะดูเหมือน

#!/usr/bin/env bash

for i; do
    ffmpeg -i "$i" -ab 128k "${i%mp4}mp3"
done

และคุณควรจะเรียกมันเหมือน

yourscript           # Do nothing
yourscript *.mp4     # Expands to all .mp4 files
yourscript file.mp4  # Process just file.mp4
2021-11-23 17:13:32

ขอบคุณมาก มันทำงานได้ดี ฉันสามารถใช้$ฉันอยู่ในตบสคริปต์เพื่ออ่านข้อโต้แย้งแรกหลังจากที่ scrfipt ชื่อไหม? ฉันคิดว่ามันเป็น$12 เหรียญเงิน 3$เป็นต้น
teddymills

@teddymills คน"เวทย์มนต์"อยู่ในโลง for i เส้นซึ่ง implicitly ทำ for i in "$@"อยู่ที่ไหน $@ เป็นอาเรย์ของทั้ง positional พารามิเตอร์ $1, $2 เป็นต้น เป็นเป็นปัจเจกบุคคล positional พารามิเตอร์ถ้าคุณอยากจะเข้าถึงพวกเขาโดยตรง
Benjamin W.

ชื่อ i เป็นเผด็จการซะหน่;คุณอาจจะยังใช้ for param หรือ for file แทนที่จะอและที่อ้างอิงกับมัน $param หรือ $file.
Benjamin W.

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่