为什么脚本没有被执行?

niwlg2el  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(530)

我使用osx原样下载了pig-0.11.1,并在bashrc中创建了一个别名。我有以下别名:
alias pigalis='/dev/pig-0.11.1/bin/pig-d udf.import.list=org.apache.pig.piggybank.storage.avro-d pig.additional.jars=/dev/avro-1.7.4.jar/dev/avro-mapred-1.7.4.jar/dev/json_simple-1.1.jar/users/devpig-0.11.1/contrib/piggybank/java/piggybank.jar'
问题是当我运行类似于:

piglias myscript.pig

咕噜shell弹出,但似乎并没有实际执行我的脚本。
注:我也得到 /dev/avro-mapred-1.7.4.jar: Permission Denied . 该文件的chmod设置为644(为所有人读取)。
更新:在参数周围添加双引号后,我得到:

/dev/avro-1.7.4.jar;/dev/avro-mapred-1.7.4.jar;/dev/json_simple-1.1.jar;/Users/devpig-0.11.1/contrib/piggybank/java/piggybank.jar' does not exist.

这些文件显然存在。他们每个人。

ep6jt1vc

ep6jt1vc1#

你需要引用 -D 参数包含分号,否则将终止命令。

alias pigalias='/dev/pig-0.11.1/bin/pig -D udf.import.list=org.apache.pig.piggybank.storage.avro -D "pig.additional.jars=/dev/avro-1.7.4.jar;/dev/avro-mapred-1.7.4.jar;/dev/json_simple-1.1.jar;/Users/devpig-0.11.1/contrib/piggybank/java/piggybank.jar"'

你得到了 Permission denied 错误,因为您正在尝试执行 /dev/avro-mapred-1.7.4.jar 作为一个程序,因为它在分号之后,并且没有执行权限。

相关问题