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

时间:2010-08-18 08:47:27

标签: shell sweave

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

我有一个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,对所有帮助过这个初始脚本的人来说!

1 个答案:

答案 0 :(得分:1)

dirname可用于获取文件的目录名称,或者您可以使用之前针对/的扩展名执行的相同替换。

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