Вывод логического значения из Rscript в переменную Bash

У меня есть сценарий R, который выводит TRUE или FALSE. В R он использует добросовестный тип данных T/F, но когда я повторяю его возвращаемое значение в bash, кажется, что это строка, говорящая:

"[1] TRUE"

или

" [1] FALSE"

Им обоим предшествует [1]. Как и [0], это не опечатка. В любом случае, результатом этого является то, что когда я пытаюсь протестировать выходные данные этого Rscript для запуска последующего сценария, мне приходится сравнивать строки с «[1] TRUE», как показано ниже, вместо сравнения с «TRUE» или « 1", который кажется чище и лучше.

A=$(Rscript ~/MyR.r)
echo $A
if [ "$A" == "[1] TRUE" ]; then
    bash SecondScript.sh
fi

Как заставить R либо выводить истинное логическое значение, либо Bash принимать выходную строку и преобразовывать ее в 0/1 для сравнения? То есть я бы лучше проверил на...

if [ $A == TRUE ];

, чем на

if [ "$A" == "[1] TRUE" ];

Это возможно, или я должен быть доволен этим, как оно есть, что работает?

* ОБНОВЛЕНИЕ *

Вот минимизированная версия Rscript, который генерирует это...

myinput <- TRUE #or FALSE

FunctionName <- function(test){
if (test == TRUE){
val <- TRUE
} else {
val <- FALSE
}
return(val)
}

FunctionName(myinput)
6
задан Mittenchops 13 May 2012 в 21:44
поделиться