シェルスクリプトマガジン

第5回 文書をPDF化する

実際のプログラム例

 早速、シェルスクリプトを作成してみましょう。今回のシェルスクリプト(officepdf_converter.sh)は、次のようになります。

#!/bin/sh

source_folder="${HOME}/office"
destination_folder="${HOME}/pdf"

currnt=$(pwd)
cd ${source_folder}
office_files=$(ls *.doc *.docx *.odt *.xls *.xlsx *.ods *.ppt *.pptx *.odp 2>/dev/null)
cd ${currnt}

  for i in ${office_files}
  do
    echo "${i}をPDFに変換します。しばらくお待ちください"
    soffice --headless --nolockcheck --language=ja --convert-to pdf --outdir ${destination_folder} ${source_folder}/${i} 1>/dev/null
  done 2> /dev/null

 3~4行目で、オフィス文書を格納するディレクトリ名と、PDFファイルを保存するディレクトリ名を、それぞれ「source_folder」と「destination_folder」の変数に代入しています。例のスクリプトでは、オフィス文書を格納するディレクトリ名を「office」、PDFファイルを保存するディレクトリ名を「pdf」として、どちらもホームディレクトリの下に作成しています。「${HOME}」で、環境変数の「HOME」からホームディレクトリのパスを取り出します。環境変数は、あらかじめ用意された変数です。システムが必要とする値を格納しています。HOMEのほかにも、実行ファイルを格納しているディレクトリを示す「PATH」、ユーザー名を格納している「USER」、標準の言語と文字コードを格納している「LANG」など、多数あります。