我想编写一个将过滤条件作为命令行参数的猪脚本。从命令行我想输入如下内容:
pig -p "MY_FILTER=field1 == 0 and field2 == 5" myscript.pig
在我的脚本中,我有一行:
my_filtered_data = filter my_data by $MY_FILTER;
MY_FILTER
当没有空格并且我在值周围传递引号时,这可以按预期工作;因此,如果我MY_FILTER=\"field1==0\"
在命令行键入,shell 将传递带有值的引号,而 pig 会执行我想要的扩展。但是,如果我提供它,参数将无法扩展MY_FILTER=\"field1 == 0\"
我尝试了许多不同的引用技术,甚至尝试直接从 python 的 subprocess 模块运行命令,以确保我的 shell 没有做一些奇怪的事情。