Установить каталог файлов, созданных сценарием оболочки? - PullRequest
0 голосов
/ 18 августа 2010

РЕДАКТИРОВАТЬ: пришлось пометить это, потому что это скорее вопрос 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

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

1 Ответ

1 голос
/ 18 августа 2010

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

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