0

编辑:不得不重新标记这个,因为它是一个 Sweave / R 问题,因为这个脚本的问题是 Sweave 代码的输出目录。R CMD Sweave 有相应的选项吗?

我有一个从 .Rnw 文件创建 .tex 文件的 shell 脚本。该文件需要进一步处理,但脚本找不到,因为它以某种方式自动生成到我的主目录。

我需要在 .Rnw 文件的文件夹中生成 .tex 文件(因为所有其他信息都在那里)。请注意,.Rnw 文件是通常使用文件选择器选择的文件。

附带问题:是否有选择文件的选项,类似于 Java 中的 JFileChooser,只允许选择某些文件?

这是代码:

#!/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

感谢所有帮助编写此初始脚本的人!

4

1 回答 1

1

dirname可用于获取文件的目录名称,或者您可以使用与之前对扩展名所做的相同类型的替换/

filedir="${no_ext%/*}"
/usr/local/texlive/2009/bin/universal-darwin/pdflatex -output-directory "$filedir" "$no_ext.tex"
于 2010-08-18T09:00:51.370 回答