2010-08-18 55 views
0

编辑:必须重申这一点,因为这是一个Sweave/R问题,因为这个脚本的问题是Sweave代码的输出目录。 R CMD Sweave是否有相应的选项?设置由shell脚本创建的文件的目录?

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

我需要在.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 

THX,所有那些谁与这个初始脚本帮助!

+0

这对于昨天推荐的Platypus也很重要,因为使用该工具创建的应用程序将.tex文件保存到Apps包文件夹默认情况下也不是最优的。 – 2010-08-18 08:49:34

回答

1

dirname可用于获取文件的目录名称,也可以使用与之前用于/的扩展名相同类型的替换。

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

Thx,看起来像我不知道pdflatex的输出目录选项:) – 2010-08-18 10:05:07