Установить каталог файлов, созданных сценарием оболочки?

РЕДАКТИРОВАТЬ: пришлось переименовать это, потому что это скорее вопрос Sweave / R, поскольку проблема этого скрипта заключается в выходном каталоге кода Sweave. Есть ли соответствующая опция для 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

Спасибо всем тем, кто помог с этим первоначальным сценарием!


person Matt Bannert    schedule 18.08.2010    source источник
comment
Это также важно для использования с Platypus, который был предложен вчера, потому что приложения, созданные с помощью этого инструмента, по умолчанию сохраняют файл .tex в папках пакета приложений, что также не является оптимальным.   -  person Matt Bannert    schedule 18.08.2010


Ответы (1)


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

filedir="${no_ext%/*}"
/usr/local/texlive/2009/bin/universal-darwin/pdflatex -output-directory "$filedir" "$no_ext.tex"
person Ignacio Vazquez-Abrams    schedule 18.08.2010
comment
Спасибо, похоже, я не знал об опции выходного каталога pdflatex :) - person Matt Bannert; 18.08.2010