我有一个bash脚本(Mac OS X),它依次调用Node.js命令行应用程序。
我通常会像这样调用Node.js应用程序:
node mynodeapp events:"Open project"
尽管在" Open"之间存在空间,但哪个节点作为一个参数进行解析没有问题。和"项目"。
我像这样调用我的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\"'
,但没有区别。
答案 0 :(得分:3)
您还需要在调用时使用引号:
node mixpanel-extract date:"$1" events:"$EVENTSQUOTES"
答案 1 :(得分:3)
echo node mixpanel-extract "date:$1" "events:$2"
node mixpanel-extract "date:$1" "events:$2"
您在使用变量时也需要引用变量,否则会发生分词。