2010-08-18 2 views
0

EDIT: пришлось перезапустить это, потому что это скорее вопрос Sweave/R, так как проблема этого скрипта - это выходной каталог Sweave Code. Есть ли соответствующая опция для R CMD Sweave?Установить каталог файлов, созданных скриптом оболочки?

У меня есть сценарий оболочки, который создает .tex-файл из файла .Rnw. Этот файл необходимо обработать дальше, но не найден скриптом, потому что он как-то автоматически генерируется в моем домашнем каталоге.

Мне нужен файл .tex, который будет сгенерирован в папке файла .Rnw (потому что там есть вся другая информация). Обратите внимание, что файл .Rnw - это то, что обычно выбирается с помощью селектора файлов.

Боковой вопрос: есть ли опция для выбора файла, аналогичная JFileChooser в Java, которая позволяет выбирать только определенные файлы?

Вот код:

#!/bin/bash 

myfile=$(/usr/bin/osascript << EOT 
tell app "AppleScript Runner" 
activate 
    return posix path of (choose file) 
    end 
    EOT) 

    if [ $? -eq 0 ] 
    then 
     R CMD Sweave $myfile 
     no_ext="${myfile%.*}" 
     /usr/local/texlive/2009/bin/universal-darwin/pdflatex $no_ext.tex 
     open $no_ext.pdf 
     else 
      echo "User canceled" 
      fi 

Thx, всем тем, кто помог с этим скриптом!

+0

Это также важно для использования с Platypus, который был предложен вчера, поскольку приложения, созданные с помощью этого инструмента, сохраняют файл .tex в папках пакетов приложений по умолчанию, что также не является оптимальным. –

ответ

1

dirname можно использовать, чтобы получить имя каталога файла, или вы можете использовать ту же самую замену, что и ранее, для расширения с /.

filedir="${no_ext%/*}" 
/usr/local/texlive/2009/bin/universal-darwin/pdflatex -output-directory "$filedir" "$no_ext.tex" 
+0

Thx, похоже, что я не знал выходную директорию pdflatex :) –

Смежные вопросы