我是 shell 脚本的新手。我正在努力解决这个问题。
> script to execute in cron (util.sh)
#!/bin/sh
HOST='ahostname'
PORT='3306'
USER='auser'
PASS='apassword'
DB='adatabase'
. /mnt/stor/backups/backup.sh
(我也试过source/mnt/stor/backups/backup.sh)
> script to execute (backup.sh)
当 backup.sh 被调用(它确实被调用)时,它似乎只是被解析而不是被执行。所以无论我放入什么,我都会收到如下消息:
/mnt/stor/backups/backup.sh: line 8: date: command not found
/mnt/stor/backups/backup.sh: line 8: mysqldump: command not found
/mnt/stor/backups/backup.sh: line 8: tar: command not found
/mnt/stor/backups/backup.sh: line 8: rm: command not found
想法是拥有一个域本地化文件,用变量执行它,然后调用一个使用变量来完成肮脏工作的主脚本。由于我的一个主机和多个域的限制,这是最好的方法。
最佳答案
有问题的脚本似乎是 /mnt/stor/backups/backup.sh
。尝试将 PATH 设置为包括所有带有二进制文件的常用目录,以便脚本可以找到它的工具。或者,更好的是,更改 /mnt/stor/backups/backup.sh
并在 /bin/rm
之类的命令中使用绝对路径,而不仅仅是 'rm '
.
关于linux - 从 shell 脚本调用脚本 - 找不到获取命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9005867/