4
我有以下的bash腳本中的R腳本被稱爲返回的參數來自R來砸
#!/bin/bash
declare -x a=33
declare -x b=1
declare -x c=0
Rscript --vanilla MWE.R $a $b $c
echo $a $b $c
我想修改bash的變量在R腳本,並在bash腳本返回其修改後的值因爲我然後將修改的變量傳遞到其他地方。將R腳本是
#!/usr/bin/env Rscript
args = commandArgs(trailingOnly=TRUE)
Rb = as.numeric(args[2])
Rc = as.numeric(args[3])
Rb = Rb + 1
Rc = Rc + 1
args[2]=Rb
args[3]=Rc
print(c(args[1],args[2],args[3]))
然而,print
和echo
的輸出分別爲:
[1] "33" "2" "1"
33 1 0
這表明新值沒有被選自R傳遞到抨擊。我究竟做錯了什麼?
這不是我最初的問題,但我不能找到一種方法來操縱數組的結果 - 我可以修改的問題如果最好的話。我需要測試'c'是否等於1,但是我試圖將輸出轉換爲整數的所有內容都失敗了(自從你第一次回答以來,我試過了!)。它看起來像我嘗試圍繞結果引號阻止我進一步操縱,甚至像'c = $ {RESULT [3]} | sed「s/\」// g「'不起作用,基本上''c''總是好像是''1''''''''但是從來沒有'1' – SnowFrog
好,你想達到什麼目的?算術操作將在bash腳本中? – klashxx
如果'c'爲'「1」'然後我希望能夠將它用作bash腳本中的更多計算的數字,但無論我嘗試將其轉換爲數字例如在其他許多'c = $ {RESULT [3]} | sed「s/\」// g「'中,它不起作用。無論我做什麼,它都被認爲是一個角色(我猜)。 – SnowFrog