我有一个 bash 脚本 (Mac OS X),它依次调用 Node.js 命令行应用程序。
我通常这样调用 Node.js 应用程序:
node mynodeapp events:"Open project"
尽管“Open”和“project”之间有空格,哪个 Node 作为一个参数解析没有问题。
我这样调用我的 bash 脚本:
. mybashscript.sh 2014-03-20 "Open project"
在我的 bash 脚本中:
EVENTSQUOTES=\"$2\"
echo node mixpanel-extract date:$1 events:$EVENTSQUOTES
node mixpanel-extract date:$1 events:$EVENTSQUOTES
运行脚本会产生:
node mixpanel-extract date:2014-03-20 events:"Open project"
Parameters: { date: '2014-03-20',
events: [ '"Open' ] }
因此,尽管 echo
输出行看起来不错,但我的 Node.js 应用程序的 Parameters:
输出告诉我 bash 将参数一分为二。我也尝试用更多引号将其包装起来,例如EVENTSQUOTES='\"$2\"'
但没有区别。
最佳答案
您还需要在调用时使用引号:
node mixpanel-extract date:"$1" events:"$EVENTSQUOTES"
关于node.js - 如何在 bash 参数中保留引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22570384/