如何更改R CMD swave的输出目录?

如何更改R CMD swave的输出目录?,r,sweave,R,Sweave,使用R CMD swave,我的.tex文件总是在我的主目录中生成。有可能改变这个吗?我的意思是我可以用一个shell脚本来mv它,但我想有更好的技巧来做 @德克: 我使用了我发布的脚本,pdflatex找不到该文件,因为它总是写入用户的主目录 嗯?它总是在当前工作目录中。所以试试看 而which.tex现在将成为~/foo,因为这是您a)放置源代码并b)调用命令的地方。下面是对我有效的方法。。。没有R CMD swave的参数,但仍然是一个解决方法。 basename和dirname的使用帮助

使用R CMD swave,我的.tex文件总是在我的主目录中生成。有可能改变这个吗?我的意思是我可以用一个shell脚本来mv它,但我想有更好的技巧来做

@德克: 我使用了我发布的脚本,pdflatex找不到该文件,因为它总是写入用户的主目录

嗯?它总是在当前工作目录中。所以试试看


which.tex
现在将成为
~/foo
,因为这是您a)放置源代码并b)调用命令的地方。

下面是对我有效的方法。。。没有R CMD swave的参数,但仍然是一个解决方法。 basename和dirname的使用帮助很大:)

#/bin/bash

myfile=$(/usr/bin/osascript只需编辑我的问题以指向链接中的脚本。脚本将打开一个对话框,我可以在其中选择.Rnw文件(Mac OSX)。然后您可能会有一个该脚本和/或您的路径有问题,b)一个措辞特别糟糕的问题,如
R CMD swave
,没有错。我不是在责备
R CMD swave
:)。虽然如果有输出目录的参数,我可以使用它而不是文件。事实上,问题是$myfile是从osascript返回的整个posix路径,我无法正确地拆分它。但是我必须拆分的唯一原因是因为我需要到处移动东西(因为R CMD)。@Dirk,这很奇怪,因为在我的R代码中,我从来没有使用HOME作为wd。我第一次甚至能够让这个代码与鸭嘴兽一起工作。
 mkdir foo
 mv whatever.Rnw foo
 cd foo
 R CMD Sweave whatever.Rnw
#!/bin/bash

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

    if [ $? -eq 0 ]
    then
        echo $myfile
        R CMD Sweave $myfile
        no_ext=`basename $myfile .Rnw`
        directory=`dirname $myfile`
        mv ~/$no_ext.tex $directory/$no_ext.tex
        /usr/local/texlive/2009/bin/universal-darwin/pdflatex -output-directory       $directory $no_ext.tex
        open $directory/$no_ext.pdf
        else
            echo "User canceled"
            fi