TRUE または FALSE を出力する R スクリプトがあります。Rでは、正真正銘のT/Fデータ型を使用していますが、その戻り値をbashにエコーすると、次のように文字列のように見えます:
"[1] TRUE"
また
"[1] FALSE"
どちらも [1] で始まります。どちらも [0] ではありません。これはタイプミスではありません。とにかく、この結果は、このRscriptの出力をテストして後続のスクリプトを実行しようとすると、「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)