这是一个嵌入式 Linux 系统,所以情况有些不同。我正在尝试使用绝对路径运行带参数的二进制文件,但它不起作用。如果我从文件夹中运行二进制文件,例如,如果二进制文件在其中/home/root/test folder
并且我运行
root@user:~/test# ./mybinary 1 2
它工作没有问题。但下面不行,似乎无法理解参数
root@user:~# /home/root/test/mybinary 1 2
最后,我想crontab
使用绝对路径来调用它来运行这个二进制文件。
答案1
如果您的程序需要从某个目录启动,可能是因为它正在使用相对路径从该目录读取一些文件,只需先更改目录:
cd /home/root/test; mybinary 1 2
完成后你可以再添加一张cd来改回来:
cd /home/root/test; mybinary 1 2; cd -
如果从 crontab 运行,后者是多余的,但在这种情况下,您必须将 2 个命令合并为一个:
(cd /home/root/test; mybinary 1 2)
为此目的创建单独的脚本似乎是过度设计的。
不要忘记 crontab 中的注释。如果您是该程序的作者,您应该从固定的配置文件(如 ~/.mybinaryrc 或 ~/.mybinary.conf 等)读取,或者提供一个目录开关,在哪里查找文件,以便您可以调用它像那样:
mybinary --startdir ~/home/root/test 1 2