【发布时间】:2019-10-02 01:49:38
【问题描述】:
我有以下脚本:
rstest
text=$1
cmd="Rscript -e \"a='$1'; print(a)\""
echo $cmd
$cmd
这是我运行它时得到的输出:
balter@spectre3:~$ bash rstest hello
Rscript -e "a='hello'; print(a)"
Error: unexpected end of input
Execution halted
但是,如果我直接运行 echoed 命令,它运行良好:
balter@spectre3:~$ Rscript -e "a='hello'; print(a)"
[1] "hello"
我想了解这是为什么。我尝试了引用 bash 变量和添加 eval 的各种组合。但这似乎不是问题。
编辑
我尝试了下面给出的答案,但得到了不同的结果!
balter@spectre3:~$ cat rstest
text=$1
cmd="Rscript -e \"a=$1; print(a)\""
echo $cmd
eval $cmd
balter@spectre3:~$ bash rstest
Rscript -e "a=; print(a)"
Error in cat("pointing to conda env:", env_name, "and lib location", lib, :
argument "env_name" is missing, with no default
Calls: startCondaEnv -> cat
Execution halted
【问题讨论】:
-
我想你想要
eval $cmd而不仅仅是$cmd -
这并没有改变行为:(