是否设置由shell脚本创建的文件目录?

是否设置由shell脚本创建的文件目录?,shell,sweave,Shell,Sweave,编辑:不得不重新标记它,因为这是一个swave/R问题,因为这个脚本的问题是swave代码的输出目录。R CMD SWAVE是否有相应的选项 我有一个shell脚本,它从.Rnw文件创建一个.tex文件。这个文件需要进一步处理,但是脚本找不到,因为它是自动生成到我的主目录的 我需要在.Rnw文件的文件夹中生成.tex文件(因为所有其他信息都在那里)。请注意,.Rnw文件通常是通过文件选择器选择的 附带问题:有没有类似于Java中的JFileChooser的ChooseFile选项,它只允许选择某

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

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

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

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

代码如下:

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

myfile=$(/usr/bin/osascript
dirname
可用于获取文件的目录名,或者您也可以使用先前使用
/
替换扩展名的方法

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

这对于昨天建议的Platypus使用也很重要,因为使用该工具创建的应用程序默认情况下会将.tex文件保存到应用程序包文件夹中,这也不是最优的。Thx,看起来我不知道pdflatex的输出目录选项:)