【发布时间】:2015-04-22 01:02:00
【问题描述】:
我有一个如下的 bash shell 脚本。
#!/bin/bash
SIZES=("512" "1024" "2048")
for i in ${!SIZES[*]}
do
SIZE=${SIZES[$i]}
echo $SIZE
# first, resize original image
convert -resize $SIZE"x"$SIZE! chernarus2048.jpg chernarus$SIZE"x"$SIZE.jpg
mkdir tiles$SIZE
# slice resized image into 256x256 tiles
convert -crop 256x256 chernarus$SIZE"x"$SIZE.jpg tiles$SIZE/tile%04d.jpg
rm chernarus$SIZE"x"$SIZE.jpg
done
但是当我使用以下命令在命令行中运行它时
sh generate_tiles.sh chernarus2048.jpg
我收到一个错误convert: command not found
我使用的是 OS X Yosemite 10.10.2。图像保存在放置 shell 脚本的同一文件夹中。请帮帮我。
【问题讨论】:
-
听起来
convert不在您的路径中。能正常运行吗?which convert告诉你什么? -
你为什么要给你的脚本一个参数?它不会在任何地方使用
$1。 -
你可以写
for SIZE in ${SIZES[*]},你不需要使用$i。 -
尝试在
convert命令之前添加echo,以确切了解如何评估此命令。另外,在变量周围使用引号!"$SIZE"等 -
@Tom Fenech 'which convert' 在终端中没有给出任何东西