私はこのスクリプトをオンラインで見つけましたが、編集しようとしていますが、テストしているので、すべてのファイルに対してエラーが出ることがわかりますスペースがある。これは私がターミナルウィンドウに乗るエラーログの一種である:bashスクリプトでファイル名の空白を処理できない
Skipping 1-03 as ./mp3/basename "$input_file" .wav.mp3 exists.
Skipping The as ./mp3/basename "$input_file" .wav.mp3 exists.
Skipping power, as ./mp3/basename "$input_file" .wav.mp3 exists.
そして、これはスクリプトです:
#!/bin/bash
# Title: wav_to_mp3.sh
# Purpose: Converts all WAV files present in the folder to MP3
# Author: Karthic Raghupathi, IVR Technology Group LLC
# Last Revised: 2014.01.28
# references
sox="/usr/local/bin/sox"
sox_options="-S"
# variables
source_folder="${1:-.}"
destination_folder="${source_folder}/mp3"
environment="${2:-DEVELOPMENT}"
# check to see if an environment flag was supplied
if [ $environment = "PRODUCTION" ] || [ $environment = "production" ]; then
sox="/usr/bin/sox"
environment="PRODUCTION"
fi
# print all params so user can see
clear
echo "Script operating using the following settings and parameters....."
echo ""
echo "which SoX: ${sox}"
echo "SoX options: ${sox_options}"
echo "Environment: ${environment}"
echo "Source: ${source_folder}"
echo "Destination: ${destination_folder}"
echo ""
read -e -p "Do you wish to proceed? (y/n) : " confirm
if [ $confirm = "N" ] || [ $confirm = "n" ]; then
exit
fi
# create destination if it does not exist
if [ ! -d "${destination_folder}" ]; then
mkdir -p "${destination_folder}"
fi
# loop through all files in folder and convert them to
for input_file in $(ls -1 $1 | grep .wav)
do
name_part=`basename "$input_file" .wav`
output_file="$name_part.mp3"
# create mp3 if file does not exist
if [ ! -f "$destination_folder/$output_file" ]; then
$sox $sox_options "${source_folder}/$input_file" "$destination_folder/$output_file"
else
echo "Skipping ${input_file} as $destination_folder/$output_file exists."
fi
done
私は私はそれが空白文字をエスケープ作りになってるけど、私方法を理解することはできません。私はここでいくつかの引用符を変更しようとしましたが、私はただそれを壊しています。
誰かが、Mac OS(またはUnix)上でbashスクリプトを作成する方法を学ぶための良いチュートリアルをリンクするのに親切であれば、それは大歓迎です。私はすでに少しのWebプログラミングを知っているので、完全なn00bではありませんが、それでも簡単なスクリプトを作成するのに問題があります。インターネットを手伝ってもらうことなく、独立して学びたいと思っています:)
[OK]を感謝を!私は、そのための関数を作ることができるかどうかを調べるつもりです。クイック返信のためにありがとう:) – Marw
心配する必要はありません - これは便利かもしれません:http://tldp.org/LDP/abs/html/string-manipulation。 html – Nunchy
Downvote:これは問題ではなく症状を修正しています。 http://mywiki.wooledge.org/ParsingLs – tripleee