下面的腳本..只是想練習一些bash的技能和做出快速util的我的中國MP4播放器=)Bash腳本:無法執行mencoder命令!
#!/bin/bash
#####################################
# RockChip 4gb Player mencoder preset
#####################################
TOOL='mencoder'
OUTS='./out/'
OPT1='-noodml'
OPT2="-of avi -ofps 22 -vf-add scale=320:-2,expand=320:240 -srate 44100 -ovc xvid -xvidencopts bitrate=400:max_bframes=0:quant_type=s16le -oac lavc -lavcopts acodec=mp2:abitrate=128"
bold=`tput bold`
normal=`tput sgr0`
# check does argument exists
if test -z "$1"; then
echo "There's no file given =)"
fi
# Check is it dir or file
if [ -d $1 ]; then
echo "Directory is given: $1"
# Test if output argument is given
if [ -z $2 ]; then
echo "No output argument given using default: ${bold}${red}$OUTS${normal}"
mkdir out
else
# test is given path a directory
if [ -d $2 ]; then
OUT="$2"
else
echo "Output argument is not a directory"
fi
fi
OLD_IFS=IFS; IFS=$'\n'
for file in `find . -name "*.*" -type f | sed 's!.*/!!'` ; do
file=`printf "%q" "$file"`
echo ${TOOL} ${OPT1} ${file} -o ${OUTS}${file} ${OPT2}
done
IFS=OLD_IFS
fi
問題是這一行:
echo ${TOOL} ${OPT1} ${file} -o ${OUTS}${file} ${OPT2}
當您刪除迴音,以執行命令,命令失敗,但如果您將複製此回顯腳本,並手動執行它,一切正常。
當從shell腳本輸出執行命令:
MEncoder 1.0rc4-4.2.1 (C) 2000-2010 MPlayer Team
158 audio & 340 video codecs
-of avi -ofps 22 -vf-add scale=320:-2,expand=320:240 -srate 44100 -ovc xvid -xvidencopts bitrate=400:max_bframes=0:quant_type=s16le -oac lavc -lavcopts acodec=mp2:abitrate=128 is not an MEncoder option
Exiting... (error parsing command line)
我執行命令manualy一切正常,比如前面提到的:
mencoder -noodml 12\ I\ Love\ You\ 1\ \ I\ Love\ You\ 2\ \ I\ Love\ You\ 3.avi -o ./out/12\ I\ Love\ You\ 1\ \ I\ Love\ You\ 2\ \ I\ Love\ You\ 3.avi -of avi -ofps 22 -vf-add scale=320:-2,expand=320:240 -srate 44100 -ovc xvid -xvidencopts bitrate=400:max_bframes=0:quant_type=s16le -oac lavc -lavcopts acodec=mp2:abitrate=128
現在我能做的就是複製粘貼生成的命令問題在哪裏?我試圖谷歌真的很難..沒有結果......(我知道mencoder的個人資料的..這不是我想要他們的情況下)(37行,我相信)
的分配來OLD_IFS和IFS缺少在RHS一個美元符號,和RHS也應包含在雙引號:'OLD_IFS =「$ IFS」; IFS = 「$ OLD_IFS」'。但是,由於腳本即將退出,因此重置值無關緊要(因此無論如何也無關緊要)。 – 2011-04-21 04:47:14