我有一个使用Bash脚本来转换PDF的PHP程序。但是,如果文件名包含空格,则不会正确地通过bash脚本。Bash和PHP,引用命令行参数
如何用bash脚本中的空格转义文件名?你需要做一些特别的事情来引用“OUTFILE”变量的文件名吗?
bash脚本:
#!/bin/bash
INFILE=$1
OUTFILE=${INFILE%.*}
gs \
-q \
-dSAFER \
-dBATCH \
-dNOPAUSE \
-sDEVICE=png256 \
-r150x150 \
-sOutputFile=${OUTFILE}.png \
${INFILE}
PHP脚本:
echo "converting: ".$spool.$file . "\n";
system("/home/user/bin/pdf2png.sh " . escapeshellarg($spool . $file));
编辑:我删除周围的escapeshellarg()变量的报价。但是这并没有解决问题。我认为这是在Bash脚本OUTFILE变量中。
这个工作!我在bash脚本的最后两行添加了变量的引号。 ... -sOutputFile =“$ {OUTFILE} .png”\ “$ {INFILE}” – jjclarkson 2009-09-15 20:58:32