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