如何将ruby脚本链接到/ usr / local / bin,以便何时可以找到它

时间:2016-09-25 14:53:23

标签: ruby linux cron whenever

我制作了一个脚本,我需要whenever每隔30.minutes

通过cron运行它

将其与ln -s scruffy.rb /usr/local/bin相关联可以正常运行,但之后会发生这种情况:

gilani@raspberrypi:~ $ /usr/local/bin/scruffy.rb
-bash: /usr/local/bin/scruffy.rb: Too many levels of symbolic links

我在哪里以及如何设置符号链接以便cron可以运行我的脚本?

1 个答案:

答案 0 :(得分:4)

试试这个:

ln -s /absolute/path/to/scruffy.rb /usr/local/bin
      ^^^^^^^^^^^^^^^^^^ adjust this path

您的原始命令会生成一个名为/usr/local/bin/scruffy.rb的符号链接,其目标设置为scruffy.rb。问题是符号链接目标中的相对路径被解释为相对于包含符号链接的目录,而不是相对于运行ln命令的路径。所以现在/usr/local/bin/scruffy.rb是它自己的符号链接,因为相对路径scruffy.rb被解释为相对于/usr/local/bin会让你回到符号链接本身。所以你有一个指向自己的链接,这会创建一个无限循环。

修改:如果您不想输入scruffy.rb的完整绝对路径并从包含它的目录中执行ln,可以简单地做:

ln -s "$PWD/scruffy.rb" /usr/local/bin
正如mudasobwa指出的那样。