ich versuchte mit dem folgenden in R`Terminal` vs` System() `in R
system("Message=HelloWoRld;echo $(sed 's/R/r/' <(echo ${Message}))")
aber es funktioniert nicht, während
Message=HelloWoRld
echo $(sed 's/R/r/' <(echo ${Message}))
funktioniert gut, wenn Kopie im Terminal eingefügt. Das Problem scheint mit <(..)
verwandt zu sein. Wenn ich entweder which bash
oder system("which bash")
mache, bekomme ich /bin/bash
.
Warum gibt derselbe Befehl über system()
oder direkt am Terminalfenster nicht zum selben Ausgang?
FYI, ich bin auf Mac OS X 10.11.3
. Bash ist GNU bash, version 3.2.57(1)
und R ist R version 3.2.3
.
wusste nicht, dass Du hast deine vorherige Q in einer anderen Umgebung verpackt. Versuchen Sie Rohre, anstelle von Prozess sub, dh. 'system (" Message = HelloWoRld; echo $ (echo $ {Nachricht} | sed 's/R/r /' "). Viel Glück. – shellter
Das äußere' echo' ist redundant; 'system (" Message = HelloWoRld; echo $ Nachricht | sed 's/R/r /' ")'. – chepner
@shellter Das wird das gleiche Problem wie der aktuelle Code von OP haben (dh es wird auch nicht funktionieren - abhängig von der Shell). In der Tat, beide Lösungen sind schrecklich indirekt.Viel direkter ist 'sed s/R/r/<<< $ Message'. –