显而易见的解决方案是
#!/usr/bin/env gnuplot
请参阅this question 和my answer,了解有关此方法优缺点的一些讨论。
但在您的情况下,您需要将 -p 参数传递给 gnuplot - 而 #! 行不处理该语法。你可以使用
#!/usr/bin/gnuplot -p
但如果你尝试:
#!/usr/bin/env gnuplot -p
它可能会尝试执行名为gnuplot -p 的东西,但它当然不存在(它将"gnuplot -p" 作为单个参数传递给/usr/bin/env)。
我使用的一个解决方案是编写一个安装脚本来修改每个系统的#! 行。弄清楚如何做到这一点留作练习。
如果您的主目录在两台计算机上具有相同的完整路径名,您可以这样做:
#!/home/yourname/bin/gnuplot -p
在gnuplot 位于$HOME/bin 的计算机上,这正是您想要的。另一方面,您想使用/usr/bin/gnuplot,创建$HOME/bin/gnuplot 作为/usr/bin/gnuplot 的符号链接:
ln -s /usr/bin/gnuplot ~/bin/gnuplot
如果您不想弄乱两台机器上的$HOME/bin 目录,或者如果您的$HOME 具有不同的完整路径名,请选择其他目录。例如,您可以在两台机器上将其安装在/tmp/yourname/bin:
mkdir -p /tmp/yourname/bin
ln -s /usr/bin/gnuplot /tmp/yourname/bin/gnuplot # on one machine, OR
ln -s ~/bin/gnuplot /tmp/yourname/bin/gnuplot # on the other
并使用:
#!/tmp/yourname/bin/gnuplot -p