質問 |
||
| 質問者:akari131 | Linuxのbashシェルスクリプトについて教えて下さい。 | |
|---|---|---|
困り度:
|
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 とのエラーが表示されてしまいます。処理自体には問題ないのですが、何だか気持ち悪いです。解決策を教えていただけますでしょうか。よろしくお願いします。 |
|
質問投稿日時:08/03/11 12:34 質問番号:3852731 |
||
回答良回答20pt |
|
| 回答者:Tacosan | メッセージを見ればほぼ自明だと思うんだがなぁ.... [ と $1 の間にスペースが必要です. ちなみに「いろんな場合」を考えると, 条件は if [ "$1" = "" ]; then あるいは if [ "x$1" = "x" ]; then とするのが安全. |
|---|---|
| 種類:回答 どんな人:一般人 自信:自信あり |
|
| |
回答日時:08/03/11 12:40 回答番号:No.1 |
|
| この回答へのお礼 | ありがとうございました。無事、解決しました。 |