读取shell函数中引号内的命令行参数

问题描述 投票:1回答:1

我想在zshrc中为以下命令创建一个函数 -

node scripts/node_es6.js scripts/small_run_oneoff.js runMiaEventsStatsJob '{"targetDate": "02-01-2018"}'

我想将targetDate作为命令行参数传递。所以,我在zshrc写了以下函数 -

function mia-events-stats() {
    node scripts/node_es6.js scripts/small_run_oneoff.js runMiaEventsStatsJob '{"targetDate": "$1"}'
}

然而,这不起作用。当我执行mia-events-stats 02-01-2018时,传递给实际运行代码的targetDate$1

我在这里错过了什么?

shell
1个回答
2
投票

引用单引号内的字符串的字符。因此,您的美元符号将被视为普通字符。

你应该用双引号替换你的单引号让魔法发生,然后像这样逃避内部双引号:

"{\"targetDate\": \"$1\"}"

如果您需要阅读单引号,只需添加它们:

"'{\"targetDate\": \"$1\"}'"

由于双打报价,单引号不会产生任何影响。

© www.soinside.com 2019 - 2024. All rights reserved.