r
  • bash
  • shell
  • knitr
  • rscript
  • 2012-12-10 187 views 3 likes 
    3

    我需要在命令行上使用Rscript運行knit2html。我嘗試下面的代碼和它的作品Rscript和反斜槓

    Rscript -e "(knitr::knit2html(text = '## good', fragment.only = TRUE))" 
    

    然而,當我介紹了R代碼裏面塊(或任何涉及反引號),該過程將掛起。因此,以下不工作

    Rscript -e "(knitr::knit2html(text = '## good\n `r 1 + 1`',fragment.only = T))" 
    

    爲我所用的目的,我只能訪問內容,因此不能將文件傳遞給knit2html,我知道將工作。

    我的問題是如何使這項工作。我知道問題是反引號,我試圖看看逃脫他們,但似乎沒有任何工作。

    +0

    它適合我。也許是一個操作系統問題。 – agstudy

    +0

    我在Mac OS 10.8.2上。你在什麼操作系統上? – Ramnath

    +1

    您是否嘗試過使用「here file」或「here document」構造(第一行使用'Rscript << EOF',最後一行使用'EOF',以及兩者之間的「文件」內容)?我現在無法訪問* NIX盒子,但會很好奇,知道它是否可行... –

    回答

    0

    這是一個shell問題。

    它在Windows上工作。

    在Linux上你必須躲避反引號像\」

    我想原因,一些shell解釋雙引號字符串一次。

    +0

    @Ramnath我在Windows和Ubuntu上測試它。告訴我這是否適用於Mac OS。 – agstudy

    +0

    感謝您對可能出錯的問題。但是,我無法在Mac OS上使用它。 – Ramnath

    0

    一個相關問題已被報告一次here。你必須使用單引號來避免shell擴展。不過,我不確定這是否也適用於Windows。

    +0

    試過這個'Rscript -e'(knitr :: knit2html(text =「## good \ n'r 1 + 1'」,fragment.only = TRUE))''並且得到了這個。 'ARGUMENT'〜+〜'〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜TRUE))'__ignored__' – Ramnath

    +0

    好吧,它看起來像一個問題你的具體外殼;這對我有用:Rscript -e'(knitr :: knit2html(text =「## good \ n'r 1 + 1'」,fragment.only = TRUE))'(反引號被SO)我在Ubuntu下,我的'$ SHELL'是'bash',我不知道Mac的默認shell是什麼(有沒有這樣的東西'echo $ SHELL'?) –

    +0

    我做了'echo $ SHELL'並返回'bin/bash',我需要更深入地瞭解錯誤的來源。 – Ramnath

    相關問題