我正在嘗試使用 R 的system()函式從 R 腳本呼叫 shell 腳本。
我正在執行以下操作:
在我的 R 腳本中,我呼叫system()函式:system(exe, intern = TRUE,wait = TRUE)exe 包含 shell 腳本的必要引數,從 R 腳本目錄到 shell 腳本目錄的檔案路徑開始,以呼叫腳本。
這回傳sh: 1: 'file-path-to-shell-script': not found
當我復制粘貼 exe 中包含的內容并直接在命令列中運行它時,從 R 腳本的檔案位置開始,它可以完美運行。
有人可以幫我嗎?
uj5u.com熱心網友回復:
我假設您使用的是shell 腳本的相對路徑。在您的腳本中執行getwd()以確保您的作業目錄對應于腳本所在的目錄。如果您當前的作業目錄與您的腳本的位置不對應,您有幾個選項:
- 用于
setwd()將您的作業目錄設定到正確的位置,以便 shell 腳本的相對路徑正確。 - 使用提供的資訊
getwd()來更正您的相對路徑 - 使用 shell 腳本的絕對路徑作為引數
system()
例子:
- 您的腳本位于
/home/bis/scripts并getwd()回傳/home/bis/R/workspace. - 您希望執行的 shell 腳本位于
/home/bis - 如果您嘗試
system('../scripts/my-script.sh')在腳本中運行,它將失敗。 - 如果您嘗試
system('../../scripts/my-script.sh')在腳本中運行,它將成功。
希望這可以幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/521135.html
標籤:r壳命令行
