アプリ版:「スタンプのみでお礼する」機能のリリースについて

 Linux, bash超初心者です。
 WindowsのAdobe Readerで印刷できないPDFを印刷しようと、Vine Linux上でpdf2psとps2pdfを組み合わせ、以下のようなスクリプトを作ってみました。
[pdfconv.sh]
-----
#!/bin/sh
if [$1 = ""]; then
echo "Usage: ./pdfconv.sh input.pdf [output.pdf]"
else
file1=$1
file2=${file1%pdf}ps
if [$2 != ""]; then
file3=$2
else
file3=${file1%.pdf}2.ps
fi
echo $file1' -> '$file3
pdf2ps -r1200x1200 ${file1}
ps2pdf $file2 $file3
rm $file2
fi
-----
 引数が渡されていないとUsageを表示するようにしてみたのですが、引数を渡して
$ ./pdfconv.sh test.pdf
として実行すると、
./pdfconv.sh: line 3: [test.pdf: command not found
とのエラーが表示されてしまいます。処理自体には問題ないのですが、何だか気持ち悪いです。解決策を教えていただけますでしょうか。よろしくお願いします。

A 回答 (1件)

メッセージを見ればほぼ自明だと思うんだがなぁ....


[ と $1 の間にスペースが必要です.
ちなみに「いろんな場合」を考えると, 条件は
if [ "$1" = "" ]; then
あるいは
if [ "x$1" = "x" ]; then
とするのが安全.
    • good
    • 0
この回答へのお礼

ありがとうございました。無事、解決しました。

お礼日時:2008/03/11 16:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!