我有一個使用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