我正在尝试运行该脚本,但我无法正确地将命令传递到新的终端窗口。
该脚本接受一个参数,即视频文件,然后提示用户选择要输出的视频大小。从那里我希望它打开一个新的终端窗口并执行 ffmpeg 命令。
#!/bin/sh
input=$1
CD="CocoaDialog.app/Contents/MacOS/CocoaDialog"
# Get width from user
width=`$CD standard-inputbox --title "Please Enter Video Width" | sed -n '1!p'`
proceed=`$CD ok-msgbox --text "You entered $width press ok to proceed"`
if [ $proceed == 1 ]
then
# Build MP4 video creation command
cmd_to_run="./ffmpeg -i \""$input"\" -vf scale=$width:-1 -strict -2 -c:a aac -b:a 256k -b:v 4096k -vcodec libx264 -crf 22 -preset slow -threads 0 \""${input%.*}.converted.$width.mp4"\""
# Execute command in new terminal window
osascript -e "tell application \"Terminal\" to do script \"$cmd_to_run\""
else
echo "You selected cancel..."
fi
任何帮助将不胜感激
答案1
将命令的变量替换放在单引号中:
input="/path/too/foo bar.mp4"
cmd_to_run="./ffmpeg -i '$input' …
osascript -e "tell application \"Terminal\" to do script \"$cmd_to_run\""
否则参数将被过早替换。