在bash中设置别名得到"意外令牌附近的语法错误"('"

yab*_*exu 1 bash shell r shiny

我想在命令行中运行一个闪亮的应用程序,它做得很好:

R -e "shiny::runApp('~/User/Appname',launch.browser=TRUE)"
Run Code Online (Sandbox Code Playgroud)

但得到错误:意外令牌附近的语法错误`('我在.profile中设置了一个别名:

alias report="R -e "shiny::runApp('~/User/Appname',launch.browser=TRUE)""
Run Code Online (Sandbox Code Playgroud)

需要你的帮助,我猜引号中有问题吗?

anu*_*ava 7

由于你在双引号内使用双引号,你需要像这样逃避内部引号:

alias report="R -e \"shiny::runApp('~/User/Appname',launch.browser=TRUE)\""
Run Code Online (Sandbox Code Playgroud)

然而,更简洁的方法是改为使用shell函数并避免所有转义:

report() {
   R -e "shiny::runApp('~/User/Appname',launch.browser=TRUE)"
}
Run Code Online (Sandbox Code Playgroud)