指定可执行GNUPlot脚本的shebang行的正确方法是什么,以便在所有情况下都能正确传递所有参数?我希望用户能够像其他命令行可执行文件一样与脚本进行交互。这是我找到的最好的解决方案,但它并不总是有效:-
#!/opt/local/bin/gnuplot -c
print ' ARGC=' . ARGC . ' ARG0=' . ARG0 . ' ARG1=' . ARG1 . ' ARG2=' . ARG2
示例:-
sh-3.2$ ./csvs.gnu xyz 123
ARGC=2 ARG0=./csvs.gnu ARG1=xyz ARG2=123
完全按预期工作,所以也是如此。
sh-3.2$ ./csvs.gnu xyz -x
ARGC=2 ARG0=./csvs.gnu ARG1=xyz ARG2=-x
但是将-x更改为-h会失败!
sh-3.2$ ./csvs.gnu xyz -h
Usage: gnuplot [OPTION] ... [FILE]
for X11 options see 'help X11->command-line-options'
-V, --version
-h, --help
-p --persist
-d --default-settings
-c scriptfile ARG1 ARG2 ...
-e "command1; command2; ..."
gnuplot 5.0 patchlevel 3
看起来GNUPlot正在解释脚本参数,并忽略不知道的任何内容。我希望我的shebang线出问题了。如何通过gnu plot脚本从命令行运行所有参数,以便编写可以接受-h并处理它的GNUPlot脚本?